現在、AudioTrack を使用して、ネイティブ レイヤーから再生するオーディオ データを渡しています。
Java の AudioTrack の代わりに、ネイティブ レイヤーで OpenSL ES を使用できるようです。AudioTrack とは対照的に、OpenSL ES にはどのような利点があると考えられますか?
現在、AudioTrack を使用して、ネイティブ レイヤーから再生するオーディオ データを渡しています。
Java の AudioTrack の代わりに、ネイティブ レイヤーで OpenSL ES を使用できるようです。AudioTrack とは対照的に、OpenSL ES にはどのような利点があると考えられますか?
OpenSL ES:
利点:
短所:
オーディオトラック:
利点:
短所:
これは古いものですが、他の人は私のように検索からここに来るでしょう。他のアプリをアクティブにせずに、かなり低速で低電力のタブレット (Onda V10 4G、MediaTek プロセッサ) で Android 7 を使用しています。テレビで録画した .ts ファイルを再生すると、タブレットのスピーカー (テストはしていませんが、おそらくヘッドホン) では問題なく聞こえましたが、Bluetooth 経由では音声が途切れることがありませんでした。オーディオ出力は、デフォルトの OpenSL ES に設定されました。AudioTrack に変更したところ、ネットワーク経由でファイルにアクセスする場合でも、オーディオは問題なく動作するようになりました。2021 年 8 月 1 日現在の VLC です。ところで、Bluetooth 経由で、サウンドと字幕が画面に表示されているものと一致することがわかりました (リップシンクは正確ではありませんでしたが)。遅延を補正しようとせず、デフォルトのままにしました。
ファイルは Kodi で正常に再生されました。
したがって、この場合、AudioTrack を使用する説得力のある理由です。OpenSL を動作させるための設定があるかもしれませんが、気にしませんでした。