2016-05-13 67 views
1

我正在考虑使用codenameone来实现跨平台的应用程序Win/Mac/Android/iOS。我在Windows上进行开发,对Mac和iOS开发相当无知。我使用的两个特定功能是java.sound API和RandomAccessFile。我很好奇在移动平台上对这些支持是什么样的。以下代码示例是否可以通过codenameone在移动平台(尤其是iOS)上运行?Android和iOS完全支持java.sound和java.util.RandonAccessFile

实施例1:

Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); 
    for (int ii = 0; ii < mixerInfo.length; ii++) { 
     Mixer mixer = AudioSystem.getMixer(mixerInfo[ii]); 
     Info[] sli = mixer.getSourceLineInfo(); 
     addSink(sinksModel, sli, mixer); 
     Info[] tli = mixer.getTargetLineInfo(); 
     addSource(sourcesModel, tli, mixer); 
    } 
} 

实施例2:

/** Starts playing audio from the current file position. */ 
public void startPlaying() { 
    Runnable r = new Runnable() { 

     @Override 
     public void run() { 
      int framePos = sendLastCue(); 
      playing = true; 
      stopPlaying = false; 
      while (!stopPlaying) { 
       try { 
        int bytes = raf.read(buffer); 
        if (bytes < 0) { 
         break; 
        } 
        outputLine.write(buffer, 0, bytes); 
        framePos = sendCues(framePos); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      playing = false; 
      stopPlaying = true; 
      for (RecordingListener l : listeners) { 
       l.playEnded(); 
      } 

     } 

    }; 
    new Thread(r).start(); 
} 

实施例3:

/* raf is an instance of RandomAccessFile. */ 
private void writeDirect(byte[] buf, int offset, int length) throws IOException { 
     flush(); 
     raf.seek(virtualFilePointer); 
     raf.write(buf, offset, length); 
     virtualFilePointer = raf.getFilePointer(); 
     virtualLength = Math.max(virtualLength, raf.length()); 
     virtualFilePointer = raf.getFilePointer(); 
     directWriteCount++; 
    } 

谢谢!

回答

0

代号One支持在这些平台上的一个子集,并且具有用于那些中的任一个没有支撑。它也不支持NIO或类似的API,这对于在本地设备上进行QA是不切实际的。

见支持确切的API集JavaDoc中:https://www.codenameone.com/javadoc/

可以直通虽然本地接口访问本地设备功能和做这些事情本身: http://www.codenameone.com/how-do-i---access-native-device-functionality-invoke-native-interfaces.html

https://www.codenameone.com/manual/advanced-topics.html#_native_interfaces