2

AmrInputStream を使用して、PCM でエンコードされた wav ファイルを Android の amr ファイルに変換しています。以下の投稿のコードを使用しました。

AmrInputStream を使用して PCM-16 を AMR に変換する

すべて正常に動作し、amr ファイルも生成されます。しかし、MeidaPlayer で再生しようとすると、次の例外がスローされました。

   java.io.IOException: Prepare failed.: status=0xFFFFFFFC  
      at android.media.MediaPlayer.prepare(Native Method)

上記の投稿で、「再生するには出力ファイルに #AMR!\n タグを追加する必要がある」と記載されていることに気付きました。しかし、私はそれを正確に行う方法がわかりません。助けてください!

4

1 に答える 1

2

わかりました、私はそれを機能させました。出力ファイルの最初の6バイトにタグを追加する必要があります。

    InputStream inStream;
    inStream = new FileInputStream(wavFilename);
    AmrInputStream aStream = new AmrInputStream(inStream);

    File file = new File(amrFilename);        
    file.createNewFile();
    OutputStream out = new FileOutputStream(file); 

    out.write(0x23);
    out.write(0x21);
    out.write(0x41);
    out.write(0x4D);
    out.write(0x52);
    out.write(0x0A);    

    byte[] x = new byte[1024];
    int len;
    while ((len=aStream.read(x)) > 0) {
        out.write(x,0,len);
    }

    out.close();
于 2011-12-29T15:04:36.600 に答える