2016-05-13 6 views
1

クロスプラットフォームのアプリ、Win/Mac/Android/iOSの実装にcodenameoneを使用することを検討しています。私はWindowsで自分の開発を行い、MacとiOSの開発についてはかなり知らない。私がかなり使用している2つの具体的な機能は、java.sound APIとRandomAccessFileです。私は、モバイルプラットフォーム上でこれらのサポートがどのようなものであったか不思議でした。次のコードサンプルは、codenameone経由でモバイルプラットフォーム(特にiOS)で動作しますか?java.soundとjava.util.RandonAccessFileはAndroidとiOSで完全にサポートされていますか?

例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

コードネーム一つは、これらのプラットフォーム上のサブセットをサポートしており、それらのいずれかをサポートしていません。また、NIOやそれに類するAPIをサポートしていないため、ネイティブデバイスでQAを正しく実行することができません。あなたはネイティブのインターフェイススルーもののネイティブデバイスの機能にアクセスし、ネイティブにこれらのことを行うことができます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

は、サポートされているAPIの正確なセットのJavadocを参照してください。