Existe um programa padrão em que posso verificar se meus dispositivos de áudio estão silenciosos?
Edit: Por silêncio, quero dizer que se houver algo tocando nisso (não apenas ativado ou aberto)
Algo assim:
if [[ device0 is silent ]] ; then
radio $RANDOM
fi
Edit 2: O que estou tentando alcançar é um script que toca rádio e pode continuar tocando quando o player falha, por exemplo, se a conexão à Internet cair e o player não se recuperar, eu matarei o player e recomeço.
sox
. Em outro caso, você pode tentarlsof|grep snd
. Se não houver nada, você pode ligar o rádio.Respostas:
Se você estiver usando o PulseAudio (as distribuições Linux baseadas no Gnome tendem a usar o PulseAudio, você pode verificar se um está sendo executado
ps -C pulseaudio
) e deseja saber se alguns aplicativos estão enviando dados para qualquer "coletor", você pode:Ainda com o PulseAudio, se você quiser verificar se sua saída de som está silenciada, pode ser mais simples, mas você pode obter o status "mudo" do "coletor" padrão usando:
fonte
no
em qualquer situação, jogando ou não)mplayer
), ele fornece, emState: CORKED
vez deState: RUNNING
nesse caso, para que ainda funcionasse. Se o aplicativo alimenta dados de silêncio (está reproduzindo silêncio), acho que ainda assim seria exibidoRUNNING
, mas nesse caso, não vejo outra alternativa a não ser usar pamon no monitor de todas as pias e verificar se há silêncio.Se eu entendi bem, aqui está um exemplo:
Silêncio:
Ativo audaciosamente:
Para OSS chande
/dev/snd/timer
para/dev/dsp
.Este é um método muito dependente.
fonte
Supondo que você esteja usando o mixer ALSA para o seu som, você pode usar
amixer
para consultar informações sobre dispositivos de áudio. Um dispositivo de áudio normalmente possui vários canais de áudio - ou controles - cada um que pode ser desativado e desativado. Por exemplo, para verificar se oMaster
controle está mudo, você faria algo como:Use a
set
opção para executar tarefas nos controles. Vejaman amixer
para mais ajuda.fonte
amixer
não funcionou, eu testado ao longo de 15 min com absolutamente nenhum jogador se abriu, e ele ainda está relatando "mudos"A resposta do htor provavelmente funcionará, mas é inteiramente possível que "off" apareça em outro lugar na saída, causando um resultado incorreto. Aqui está uma verificação mais rigorosa usando o GNU awk:
fonte
amixer
última linha da minha linha não possui$6
: “Mono: reprodução [ativada]”. (amixer
versão 1.0.26) Talvez$NF
fosse mais portátil.