小编Jac*_*lly的帖子

Android与Nexus 6 - 如何避免降低与应用焦点相关的OpenSL音频线程优先级?

尝试使用OpenSL ES在运行Android 6.0.1的Nexus 6上实现低延迟流式音频播放时,我遇到了一个奇怪的问题.

我最初的尝试似乎遇到了饥饿问题,所以我在缓冲区完成回调函数中添加了一些基本的时序基准.我发现,如果我在应用程序打开时不断点击屏幕,音频播放效果很好,但如果我将其单独放置几秒钟,则回调开始需要更长时间.我能够一致地重现这种行为.有几点需要注意:

  • "几秒钟"〜= 3-5秒,不足以触发屏幕更改
  • 我的应用程序的活动设置了FLAG_KEEP_SCREEN_ON,因此无论如何都不会发生屏幕更改
  • 我没有采取任何措施来尝试增加音频回调线程的优先级,因为我的印象是Android已经为这些线程保留了高优先级
  • 这种行为发生在我的Nexus 6(Android 6.0.1)上,但不是在Galaxy S6上我也有(Android 5.1.1).

我看到的症状看起来真的像操作系统在与手机不交互几秒钟之后就取消了音频线程的优先级.这是正确的吗?有什么方法可以避免这种行为吗?

c++ audio android opensl nexus6

6
推荐指数
1
解决办法
1049
查看次数

标签 统计

android ×1

audio ×1

c++ ×1

nexus6 ×1

opensl ×1