2 つ以上 (たとえば、最大 5 つ) の短い ogg ファイルを同時に再生できる必要があります。同時にとは、完全な同期を意味します。それらをSoundPoolにロードして再生することはできますが、これにより再生開始時間に顕著な差が生じることがあります。これを取り除きたいです。
私の理解では、PCM を 1 つのバッファーにミックスして再生すると、これを回避できます。しかし、OGG は PCM ではないため、再生前に何らかの方法で効率的にデコードする必要があり、理想的にはユーザーがボタンを押した直後にレイテンシーを非常に低くする必要があります。そこで、OGG を PCM にストリーミングする方法が必要だと考えました。バッファを受信したら、それらをミックスして AudioTrack にフィードします。私の要件は Android 2.3.3+ であるため、Jelly Bean で提供される新しいコーデックは使用できません。
また、OGG 自体は小さいですが、たくさんあります。そのため、それらをすべてメモリにデコードしておくと (SoundPool または一部のプリデコード)、問題が発生する可能性もあります。
誰かがどこを掘るべきかヒントをくれますか? OpenSL ES はそれを行うことができますか? または、ffmpeg の統合を検討する必要がありますか? また、低遅延で同時ファイルをストリーミングすることさえ可能ですか?
ありがとう