исполнение команды при начале вспроизведения аудиопотока
-
Добрый день уважаемые члены сообщества.
Одна из малин работает у меня как сервер AirPlay(Shairport) для стриминга музыки с apple устройств на акустическую систему.
Неудобство состоит в том что чтобы слушать музыку надо сначала найти пульт от ресивера, включить ресивер, переключить источник на выход к которому подключена малина а только потом включать стриминг. Это неудобно, и что хуже — не очевидно для домашних, у которых «я подключилась а музыка не играет».
Благо ресивер (ямаха) легко управляется по сети, посему логичным было бы сделать автоматическое включение ресивера, когда начинается стриминг. Для этого надо чтобы малина как-то семафорила о начале стриминга, наверняка где-нить в dmesg или чем-то подобном эта информация есть, но увы моих познаний не достаточно чтобы самостоятельно решить эту задачу, так же ничем не смог помочь гугл, даже не очень понятно как составлять поисковый запрос.
Помогите, подскажите куда копать. -
Расскажите подробнее о порядке работы устройств. Я пока вижу ресивер, малинку, аппле-устройство и акустическую систему. Что к чему подключается, в каком порядке? Откуда и куда должен идти поток?
-
на айфоне включается музыка, айфон по AirPlay через WiFi подключается к малине, на малине стоит сервер эмулирующий AirPlay приемник который переводит постуающий сигнал на аудиовыход, сама малина обычным миниджеком подключена к ресиверу, ресивер выводит звук на колонки или телевизор, в зависимости от выбранной сцены. Сейчас например при запуске фильма в Kodi\LibreELEC, контроллер умного дома видит это и включает ресивер и переключает на соответствующую сцену. Для Kodi у контроллера есть плагин поэтому сложностей настроить это не составило, а вот с малиной не понятно, я понимаю что наверняка можно из консоли узнать идет ли на audio out поток или нет, но гугглинг увы не дал результата
-
Нашел ответ на stack overflow, если ктото еще столкнется с подобной задачей:
Check if any /proc/asound/card*/pcm*/sub*/status file contains state: RUNNING.Тему можно закрывать