PDA

Просмотр полной версии : Разделение аудиопотоков на две звуковые карты


mas_u
19.09.2014, 18:31
Задача - вывести сообщения навигации на одну звуковую карту и аудиопоток с плеера на другую.

Это можно вообще сделать?

В навителе вроде как можно выводить звук в разные потоки - мультимедиа, системные, звонок и т.д.

Если все выводится на одну звуковую карту, которая в свою очередь подключена к aux штатной магнитолы, то во время прослушивания радио, навигация естественно молчит(((

tsynik
19.09.2014, 18:59
Задача - вывести сообщения навигации на одну звуковую карту и аудиопоток с плеера на другую.

Это можно вообще сделать?

В навителе вроде как можно выводить звук в разные потоки - мультимедиа, системные, звонок и т.д.



Потоки - элементы микшера Андроид (имеют отдельные настройки уровней к примеру). Но выводятся все на одно устройство. Без серьезного внесения изменений в код микшера ничего не получится.

Но, если все звуки идут на штатный выход, в том же AudioPlayer Pro можно параллельно независимо выводить звук на внешнюю USB карту с него (так как он играет в обход микшера сам по себе).

Еще вариант - пробовать роутить через AudioManager (http://developer.android.com/reference/android/media/AudioManager.html) выход на динамик (ROUTE_SPEAKER) к примеру, или наоборот наушники (ROUTE_HEADSET), как-то подменив для них устройство вывода. Тогда в приложении должна быть функция выбора, куда играть (в радио например переключалки бывают - выводить звук на динамик, а не наушники, которые антенной выступают). Таким образом разделить, но это все костыли )

Переопределение ROUTE_SPEAKER зависит от конкретной реализации звуковой части. Раньше это можно было делать через /etc/asound.conf, но теперь используется как правило библиотека tinyalsa и она не смотрит в конфиги и /etc. Хотя, audio_policy возможно может как-то помочь.

pokertk
23.09.2014, 04:39
А есть возможность регулировать как-то громкость MEDIA при подключении по HDMI?
Регулировать громкость эквалайзером Poweramp'a жуть как неудобно (((

mas_u
24.09.2014, 01:11
В общем будет костыль.
Навител выведен в STREAM_ALARM.
При переключении магнитолы в AUX - сервис в андроиде устанавливает максимальный уровень громкости для STREAM_MUSIC.
При включении радио или СD в магнитоле - сервис устанавливает 0 уровень громкости для STREAM_MUSIC. При этом уровень громкости будильника не меняется и сообщения от навигации слышны всегда.

myen
24.09.2014, 06:47
не вижу никаких проблем...
в андроиде всегда было несколько потоков аудио...
навител ставим в аудиопоток оповещения и делаем оповещения громче потока музыки...
давно так езжу...