我正在努力更好地理解 android音频框架(特别是froyo)。
我几乎已经区分了 streams 。 AudioFlinger将每个流映射为“策略”,然后将策略路由到适当的“设备”(BT,Headset,Speaker ..)
但是我仍然很难理解: 1)多个应用程序如何在同一个流上播放?他们可以“玩”还是他们必须处理焦点(请求,放弃和倾听变化)?
2)当正在播放多个流时...一个流相对于另一个流的优先级是多少?肯定地, in-call 流具有最高优先级,但是有任何“规则”可以理解事情是如何运作的。
如果对这个问题更有信心的人有任何研究的文件/资源......那就太好了。
谢谢! 马可
答案 0 :(得分:2)
这个问题的答案
Concurrent Sound on Android Device
可以帮到你。
此外,这里
http://www.droidnova.com/creating-sound-effects-in-android-part-1,570.html
编写了如何使用您想要播放的并发流数量来初始化SoundManager。
答案 1 :(得分:0)
如果您需要了解默认行为,可以在以下位置查看Cplusplus代码
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
但是,每个供应商都可以进行更改并发布不同的风格