Como posso escolher o dispositivo de saída de áudio usando o terminal?

2

Eu tenho um fone de ouvido digital e um par de alto-falantes analógicos. Existe uma maneira de eu alternar entre eles no terminal no Ubuntu? Eu pergunto isso porque eu gostaria de criar um atalho de teclado para este switch para torná-lo mais simples do que ter a tediosa tarefa de ir para as configurações de áudio usando o mouse.

    
por Rafael Pontes 23.05.2014 / 01:16

1 resposta

4

Claro, você pode usar o comando "pactl" e "pacmd".

Um exemplo para um alto-falante USB externo + alto-falantes internos, com reprodução de música.

$ pactl list sinks short | awk -F '\t' '{print ,,}' # Print available outputs
0 alsa_output.pci-0000_00_1b.0.analog-stereo RUNNING
1 alsa_output.usb-Logitech_Logitech_Z-5_Speakers-00-Speakers.analog-stereo SUSPENDED

O primeiro com o índice 0 é o speak interno, a música está sendo executada neste sumidouro. Outro com índice 1 é o alto-falante USB externo.

$ pactl stat | grep Sink  # Show the current output device (it's the internal speaker)
Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo
$ pacmd set-default-sink 1 # Make the external USB speaker as desired output device.

Se você não estiver apostando nada durante a troca, você pode parar por aqui.

(Nota: para ter certeza de que realmente funciona, seria melhor fazer isso com algo sendo reproduzido e mover o fluxo da seguinte forma).

Se estiver tocando alguma coisa, você notará que a música ainda está em execução no dispositivo antigo e precisará movê-la para o dispositivo desejado:

$ pactl list sink-inputs | grep 'Input' # Get the stream ID
Sink Input #23
$ pacmd move-sink-input 23 1 # Move it to the USB speaker

Voilà! Você pode compor uma base de script sobre isso.

Referência: Como mudar pulseaudio sink com "pacmd set-default-sink" durante a reprodução?

    
por P.-H. Lin 13.09.2014 / 20:43