2011-12-13 7 views
4

オーディオファイルをシームレスにループしようとしています。私はMP3を使用していましたが、ファイル内のサイレントリードインによってMP3がシームレスにループできないことがわかりました。Androidのシームレスなオーディオループ

OGGとWAVを使用して次のコードを試しました。ループサウンドが、間に小さな(しかし顕著)遅延があります:Audacityの中にシームレスに

AssetFileDescriptor descriptor; 
      descriptor = getAssets().openFd("rain30s.ogg"); 
      mp.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength()); 
      descriptor.close(); 
      mp.setLooping(true); 
      mp.prepare(); 
      mp.start(); 

OGGおよびWAVリピートが。

誰が(APIへの付着)

答えて

1

あなたの最善の策はSoundPoolだろう助けることができます。

http://developer.android.com/reference/android/media/SoundPool.html

+0

私はSoundPoolは、メモリの問題を(ただし詳細を思い出すことができない)持っていることを読みました。私は3秒のファイルをループしますが、ユーザーはどれくらいの期間を決めることができます。それが1時間だった場合、SoundPoolを使用する際に問題がありますか? – Tony

+0

サウンドプールを使用しているときのメモリに関する問題について聞いたことがありません。実際には、その目的は、オーディオファイルをメモリにロードして、ゲームなどでほぼ即座に再生できるようにすることです。 –

+1

ありがとうKevin。 SoundPoolを使用して完全に動作するようになりました – Tony

関連する問題