Audio Framework: поток, стратегии, устройства
Я пытаюсь лучше понять фреймворк Android (в частности, froyo).
Я почти разграничил потоки. AudioFlinger отображает каждый поток в "стратегию", а затем направляет стратегию на правильное "устройство" (BT, Headset, Speaker..)
Однако я все еще не могу понять:
1) Как несколько приложений играют в одном потоке? могут ли они просто "играть" или им приходится обрабатывать фокус (запрос, отказ и прослушивание изменений)?
2) Когда воспроизводятся несколько потоков... каков приоритет одного потока в отношении другого? конечно, поток в вызове имеет главный приоритет, но есть ли какие-либо "правила", чтобы понять, как все работает.
Если кто-либо, у кого больше уверенности в этом вопросе, получит какой-либо документ/ресурс для изучения.. было бы здорово.
Спасибо!
Marco
Ответы
Ответ 1
Ответ на этот вопрос
Параллельный звук на устройстве Android
может помочь вам.
Кроме того, здесь
http://www.droidnova.com/creating-sound-effects-in-android-part-1,570.html
написано, как инициализировать SoundManager с количеством одновременных потоков, которые вы хотите воспроизвести.
Ответ 2
Если вам нужно понять поведение по умолчанию, вы можете увидеть код Cplusplus на
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
Однако каждый поставщик может вносить изменения и отправлять другой вкус