Как исключить STREAM_SYSTEM из REMOTE_SUBMIX
Я пишу приложение для записи аудио с устройства, используя REMOTE_SUBMIX. Согласно этой странице говорится, что
Некоторые потоки исключены из удаленного сабмикса, включая STREAM_RING, STREAM_ALARM и STREAM_NOTIFICATION. Эти потоки будут по-прежнему представлены локально, как обычно.
Теперь я хочу также исключить STREAM_SYSTEM, но не могу найти, где эта политика / стратегия определена в исходном коде AOSP или в любом файле конфигурации.
Кто-нибудь знает какие-либо подсказки об этом? Большое спасибо.
1 ответ
Он находится в служебном коде аудиополии (если вы не используете устройство Intel, использующее код маршрутизации на основе Parameter Framework, то оно находится в файле конфигурации).
Я думаю, что код, который вас интересует, находится здесь:
Аудиополитика работает следующим образом: сначала она находит "стратегию" для потока, используя Engine::getStrategyForStream
функция, то она переходит в Engine::getDeviceForStrategyInt
выбрать устройство для этой стратегии.
Кажется, что оба STREAM_SYSTEM
а также STREAM_MUSIC
использовать то же самое STRATEGY_MEDIA
:
Поэтому вам придется что-то изменить, если вы хотите исключить системный звук, но оставить воспроизведение музыки на удаленном сабмиксе.