Audio Framework: поток, стратегии, устройства

Я пытаюсь лучше понять фреймворк Android (в частности, froyo).

Я почти разграничил потоки. AudioFlinger отображает каждый поток в "стратегию", а затем направляет стратегию на правильное "устройство" (BT, Headset, Speaker..)

Однако я все еще не могу понять: 1) Как несколько приложений играют в одном потоке? могут ли они просто "играть" или им приходится обрабатывать фокус (запрос, отказ и прослушивание изменений)?

2) Когда воспроизводятся несколько потоков... каков приоритет одного потока в отношении другого? конечно, поток в вызове имеет главный приоритет, но есть ли какие-либо "правила", чтобы понять, как все работает.

Если кто-либо, у кого больше уверенности в этом вопросе, получит какой-либо документ/ресурс для изучения.. было бы здорово.

Спасибо! Marco

Ответы

Ответ 2

Если вам нужно понять поведение по умолчанию, вы можете увидеть код Cplusplus на /hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp

Однако каждый поставщик может вносить изменения и отправлять другой вкус