OpenSL ES是否支持PerformanceMode :: LowLatency?

时间:2019-06-30 22:31:17

标签: android audio oboe

当我在 Pixel 2(Oreo 8.0)上构建应用程序时,我得到PerformanceMode :: LowLatency:

  

2019-06-30 15:04:15.560 8506-8506 /? D / AUDIO-APP:HearSightEngine-流PlayStream是低延迟

     

2019-06-30 15:04:15.572 8506-8506 /? D / AUDIO-APP:HearSightEngine-流录制具有低延迟

当我在 Samsung S7(Nougat 7.0)应用程序上构建应用程序时,我不明白:

  

2019-06-30 14:49:30.874 20025-20025 /? W / AUDIO-APP:HearSightEngine-   流PlayStream不是低延迟。检查您要求的格式,   采样率和频道数

     

2019-06-30 14:49:30.896 20025-20025 /? W / AUDIO-APP:HearSightEngine-   流录制并非低延迟。检查您要求的格式,   采样率和频道数

两个重要区别是

  1. 第一种情况使用AAudio,第二种情况使用OpenSL ES。
  2. 在第一种情况下使用Pixel 2,在第二种情况下使用Samsung S7。 第二。

OpenSL ES是否支持PerformanceMode :: LowLatency?还是三星S7不支持它?或者是其他东西?我阅读了常见问题解答[1],其中提到了API的<26的AudioAttributes.FLAG_LOW_LATENCY,类似的内容对我有帮助吗?

[1] https://github.com/google/oboe/blob/master/docs/FAQ.md

1 个答案:

答案 0 :(得分:0)

仅从牛轧糖7.1开始。在早期版本的Android上,性能模式将返回PerformanceMode::NoneHere's the code

没有编程方法可以知道您在Android 7.0及更低版本上是否具有低延迟流。您可以使用adb shell dumpsys media.audio_flinger手动进行验证,并在应用程序流旁边查找F(用于FAST跟踪)。

通过遵循guidance here,可以最大限度地提高接收低延迟流的机会。