Существует ли программа по умолчанию, в которой я могу проверить, не отключены ли мои аудиоустройства?
Редактировать: молча, я имею в виду, что если что-то играет на этом (не только активирован или открыт)
Что-то вроде этого:
if [[ device0 is silent ]] ; then
radio $RANDOM
fi
Редактировать 2: я пытаюсь добиться сценария, который воспроизводит радио и может продолжать воспроизводиться при сбое проигрывателя, например, если интернет-соединение обрывается, а проигрыватель не восстанавливается, я убью игрока и начну все сначала
sox
. В другом случае вы можете попробоватьlsof|grep snd
. Если нет ничего, вы можете включить радио.Ответы:
Если вы используете PulseAudio (дистрибутивы Linux на основе Gnome обычно используют PulseAudio, вы можете проверить, работает ли он с ним
ps -C pulseaudio
) и хотите узнать, отправляют ли некоторые приложения какие-либо данные в какой-либо «приемник», вы можете сделать следующее:Тем не менее, при использовании PulseAudio, если вы хотите проверить, не отключен ли звук на выходе, это может быть проще, но вы можете получить состояние «mute» для «потребителя» по умолчанию, используя:
источник
no
в любой ситуации, играет или нет)mplayer
) он даетState: CORKED
вместо того, чтобыState: RUNNING
в этом случае он все еще работал. Если приложение подает данные молчания (играют молчание), то я полагаю , что все еще будетRUNNING
, но в этом случае, я не вижу никакой другой альтернативы , кроме использования pamon на монитор устройстве всех моек и проверить молчание.Если я вас правильно понял, вот пример:
Silence:
Я включаю дерзкий
Для OSS chande
/dev/snd/timer
to/dev/dsp
.Это очень зависимый метод.
источник
Предполагая, что вы используете микшер ALSA для своего звука, вы можете использовать его
amixer
для запроса информации об аудиоустройствах. Звуковое устройство обычно имеет несколько аудиоканалов - или элементов управления - каждый из которых может быть приглушен и включен. Например, чтобы проверить,Master
не отключен ли элемент управления, вы должны сделать что-то вроде:Используйте
set
опцию, чтобы выполнить вещи на элементах управления. Смотритеman amixer
для получения дополнительной помощи.источник
amixer
это не сработало, я тестировал в течение 15 минут, при этом ни один игрок не был открыт, и он по-прежнему сообщает о включении звукаОтвет htor, вероятно, сработает, но вполне возможно, что «off» появится где-то еще в выводе, что приведет к неверному результату. Вот более строгая проверка с использованием GNU awk:
источник
amixer
последняя строка не имеет$6
: «Mono: Playback [on]». (amixer
версия 1.0.26) Возможно$NF
, будет более переносимым.