13

現在、AudioTrack を使用して、ネイティブ レイヤーから再生するオーディオ データを渡しています。

Java の AudioTrack の代わりに、ネイティブ レイヤーで OpenSL ES を使用できるようです。AudioTrack とは対照的に、OpenSL ES にはどのような利点があると考えられますか?

4

2 に答える 2

11

OpenSL ES:

利点:

  1. Android の低レベル オーディオ API
  2. Android フォンに依存しないデバイス
  3. ゲームに最適

短所:

  1. 2.3 以降の OS でのみサポート

オーディオトラック:

利点:

  1. 高レベル API

短所:

  1. Java レイヤーで動作し、ネイティブ コードは javalayer を呼び出してオーディオを再生する必要があります。
于 2012-06-26T06:06:20.913 に答える
0

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

ファイルは Kodi で正常に再生されました。

したがって、この場合、AudioTrack を使用する説得力のある理由です。OpenSL を動作させるための設定があるかもしれませんが、気にしませんでした。

于 2021-08-01T13:46:02.033 に答える