Reproduzir áudio através de vários dispositivos USB independentemente

2

Eu preciso reproduzir uma única fonte de áudio local a partir de um RasPi em vários fones de ouvido USB. Eu preciso ter controle independente de quais fones estão tocando (1 por vez, 2 de cada vez, ..., todos de uma vez).

Tenho trabalhado com o PulseAudio no prompt de comando e consegui que o áudio fosse reproduzido em todos os fones de ouvido de uma vez, mas estou perdido em como posso ligar / desligar os fones de ouvido independentemente, enquanto a música ainda estiver tocando . Não tenho certeza absoluta de que é possível, por isso estou perguntando aqui.

Algumas ideias que tive: (A) Crie grupos de coletores para cada caso de fones de ouvido ligado / desligado e altere a entrada para diferentes grupos de origem rapidamente (B) Tocar o áudio em todos os fones de ouvido de uma só vez, mas ajuste o volume para 0 nos pias (fones de ouvido) que precisam estar desligados

Nota: muitos exemplos que tenho visto envolvem o controle de um fluxo de música anexado a um endereço IP. Eu não quero fazer isso, eu gostaria de ter arquivos de áudio localmente no RasPi.

Qualquer ajuda seria apreciada, eu sou bastante nova para isso.

    
por Chase Brown 11.10.2016 / 15:18

1 resposta

1

Se não houver outra saída de áudio para os fones de ouvido além desse único fluxo, você pode usar module-combine-sink para configurar um coletor combinado para todos os fones de ouvido e silenciar os próprios fones conforme necessário.

Listar todos os sumidouros:

pacmd list-sinks | grep name:

Faça uma pia combinada (claro, com os nomes de pia que você precisa, em vez de nomes de exemplo):

pacmd load-module module-combine-sink sink_name=combined sink_properties=device.description="Combined Sink" slaves=alsa_output.usb-first-sink.analog-stereo,alsa_output.usb-second-sink.analog-stereo,...

Em seguida, reproduza o fluxo no coletor combinado e mude

pacmd set-sink-mute alsa_output.usb-first-sink.analog-stereo true

ou ativar o som

pacmd set-sink-mute alsa_output.usb-first-sink.analog-stereo false

conforme necessário.

Se houver outra saída de áudio, acho que podemos colocar um null-sink mutável entre o coletor combinado e cada coletor de fone de ouvido.

    
por 11.10.2016 / 17:18