Estou usando o recurso PulseAudio de dispositivos de som de rede (não Multicast / RTP) para reproduzir som do meu netbook no equipamento de áudio conectado ao HTPC quando estiver em casa. Isso cria um dispositivo de som virtual que eu posso usar em vez do dispositivo físico incorporado. Na maioria das vezes isso funciona muito bem. Às vezes, no entanto, o dispositivo de som virtual simplesmente não aparece. Desconectar e reconectar-se à rede às vezes ajuda, mas nem sempre, e é irritante e potencialmente ruim para as conexões TCP existentes.
Então, minha pergunta é basicamente: Existe alguma maneira de dizer ao PulseAudio "Ei, basta olhar novamente se você realmente não consegue encontrar um dispositivo de som de rede."?
Editar: descarregar e recarregar o module-zeroconf-discover
com pacmd
também não ajuda e não parece ser um problema avahi por si só, pois avahi-browse -t --all | grep PulseAudio
mostra muitas coisas com boa aparência, mesmo quando os dispositivos não estão listados no pavucontrol ou pacmd list-sinks
.
Edit 2: Estou usando o Ubuntu 12.04 em ambas as caixas para toda a diferença que possa fazer.
fonte
Respostas:
$ pacmd
Você verá um shell semelhante ao Python com a seguinte mensagem de boas-vindas.
Welcome to PulseAudio! Use "help" for usage information. >>>
>>> list-sinks
Agora você verá uma lista detalhada de todos os dissipadores de som.
1 sink(s) available. index: 0 name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
...
A sequência do meu interesse é apenas "alsa_output.pci-0000_00_1b.0.analog-stereo"
$ pactl load-module module-tunnel-sink "server=192.168.1.105 sink=alsa_output.pci-0000_00_1b.0.analog-stereo sink_name=home_theater"
Aqui 192.168.1.105 é o endereço IP do PC coletor ", alsa_output.pci-0000_00_1b.0.analog-stereo "é a string que você acabou de copiar do terminal do coletor e" home_theater "é apenas um nome sofisticado para chamar esse dispositivo de saída de som virtual no seu computador.
$ pacmd set-default-sink home_theater
Wallah !!
fonte
Um simples
sudo service avahi-daemon restart
faz o truque, apesar deavahi-browse
ver os dispositivos antes que o avahi reinicie. Agradeço a Takkat por me indicar a direção certa.fonte
Esta resposta não foi testada e, portanto, pode não funcionar, mas pode levá-lo à direção certa.
Posso confirmar problemas não resolvidos com um serviço Avahi que às vezes não consegue se conectar a um servidor PulseAudio. Podemos reconectar-se reiniciando a rede ou o servidor pulseaudio, mas isso nem sempre funciona.
Para superar esse problema, podemos tentar estabelecer um fluxo de áudio de rede usando o protocolo TCP nativo para transmitir diretamente para o IP, em vez de usar uma resolução de nome Avahi.
Para fazer isso, podemos encapsular um dissipador remoto carregando o módulo-encapsulamento no lado do receptor. No remetente, temos que habilitar o protocolo TCP nativo carregando o module-native-protocol-tcp .
Veja também esta pergunta para terminologia e como definir a
PULSE_SERVER
variável:Como definir automaticamente o coletor padrão PulseAudio como servidor remoto na inicialização - Ubuntu 9.04
É uma pergunta bastante antiga para o Ubuntu 9.04, mas, para minha terminologia e procedimentos conhecidos, não mudamos muito desde então.
Siga também o Wiki PulseAudio em conexões de rede .
fonte
sudo service avahi-daemon restart
eu não esperava isso porqueavahi-browse
visualizava os dispositivos antes mesmo da reinicialização, mas acho que a reinicialização aciona a chamada de retorno novamente, o que é tudo o que é necessário.Você pode tentar
pulseaudio -k
, o que mata o serviço pulseaudio (parece reiniciar automaticamente). Isso trouxe as coisas de volta para mim antes.A outra coisa que às vezes ajuda é desmarcar e depois clicar novamente nas caixas
Pulseaudio Preferences
(akapaprefs
). As caixas de seleção estãoMake discoverable PulseAudio network sound devices available locally
dentroNetwork Access
eEnable network access to local sound devices
dentroNetwork Server
. Obviamente, isso provavelmente só funciona para o que você está usando.fonte