Descobrir se a saída de som está sem áudio ('ALSA' com 'Pulseaudio')

0

Estou tentando procurar um comando que produza 1 ou 0 , dependendo de ter minha saída desativada.

Eu estava tentando isso:

amixer sget Master

Esta é a saída que recebo:

Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 64
  Mono: Playback 64 [100%] [0.00dB] [on]

Agora, os valores mudam aqui de acordo (se eu diminuir o volume, a porcentagem e os valores de dB mudam). No entanto, se eu entrar em Pavucontrol e desativar minha saída na guia "Dispositivos de saída", a saída do comando acima permanecerá a mesma. Literalmente nada muda. Mas meu som realmente é silenciado.

Qual comando devo usar? Por que isso não altera [on] para [off] ? Não deveria?

Obrigado antecipadamente.

    
por bertalanp99 08.01.2018 / 16:52

1 resposta

2

Após uma longa pesquisa, consegui encontrar uma resposta. Isso pode ser útil para outras pessoas que procuram algo assim por aí!

O que você precisa:

pacmd list-sinks

Este comando tem uma linha como esta:

muted: no

E esse no realmente muda para yes quando eu mudo meu dispositivo. Perfeito. Eu consegui retirar a saída usando este comando, se alguém precisar:

awk '/muted/ {print $2}' <(pacmd list-sinks)

Eu poderia simplesmente usar isso em uma declaração if ( [...] == "yes" )

Desculpe por postar muito em breve, parece que não vou conseguir encontrar uma solução em lugar algum.

    
por 08.01.2018 / 19:04