13

目前我正在使用 AudioTrack 将来自本机层的音频数据传递给它来播放。

看来我可以在本机层使用 OpenSL ES 而不是 Java 中的 AudioTrack。与 AudioTrack 相比,OpenSL ES 提供的假定优势是什么?

4

2 回答 2

11

OpenSL ES:

好处:

  1. Android 中的低级音频 API
  2. 独立于 Android 手机的设备
  3. 适合游戏

缺点:

  1. 仅支持 2.3+ 操作系统

音轨:

好处:

  1. 高级 API

缺点:

  1. 在 Java 层工作,本机代码必须调用 javalayer 才能播放音频。
于 2012-06-26T06:06:20.913 回答
0

虽然这是旧的,但其他人会像我一样从搜索中来到这里。我在一个相当慢且低功耗的平板电脑(Onda V10 4G,联发科处理器)上使用 Android 7,没有其他应用程序处于活动状态。在播放从电视录制的 .ts 文件时,我发现音频通过蓝牙连续丢失,尽管通过平板电脑的扬声器(可能是耳机,尽管我没有测试)很好。音频输出设置为默认 OpenSL ES。我更改为 AudioTrack,现在音频很好,即使对于通过网络访问的文件也是如此。VLC 当前日期为 2021 年 8 月 1 日。顺便说一句,通过蓝牙,我发现声音和字幕与屏幕上的内容相匹配(没有像我有时发现的那样大的偏移),尽管口型同步并不准确)。我没有尝试补偿延迟,默认保留。

文件通过 Kodi 播放良好。

所以在这种情况下使用 AudioTrack 的令人信服的理由。可能有一些设置可以让 OpenSL 工作,但我没有打扰。

于 2021-08-01T13:46:02.033 回答