Como usar pulseaudio para fluxo de rede com Raspbmc (Kodi)?

4

Estou usando o Raspbmc (com Kodi 14) no meu Raspberry Pi. Agora eu gostaria de configurar pulseaudio para poder transmitir música de todos os meus computadores Linux facilmente para o Raspberry pi. Meu problema é que eu não sou capaz de obter pulseaudio em execução no Raspberry Pi. Eu tentei os seguintes passos:

1. Instalar pulseaudio

sudo apt-get install pulseaudio pulseaudio-module-zeroconf

2. Configurando pulseaudio

sudo nano /etc/pulse/default.pa

Eu adicionei as seguintes linhas:

load-module module-native-protocol-unix auth-anonymous=1
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24 auth-anonymous=1
load-module module-zeroconf-publish

3. Iniciar pulseaudio

Primeiro, tentei iniciar o pulso como daemon:

pulseaudio -D

Eu também tentei iniciar todo o sistema:

sudo pulseaudio --system 

Mas o pulso não aparece em minhas outras máquinas (está configurado corretamente quando eles se encontram). O que está errado aqui?

    
por user5950 31.12.2014 / 13:35

1 resposta

1

Você precisa editar system.pa , não default.pa . Quando você efetuar login no seu RPI e executar ps fax , você irá notar esta linha:

/usr/bin/pulseaudio --system --realtime --log-target=syslog --log-level=1 --disallow-exit --disable-shm --exit-idle-time=-1

O --system é o que faz o pulseaudio ler system.pa em vez de default.pa . Note também que o kodi já lança uma instância de pulseaudio para você e você não pode simplesmente iniciar outro. O primeiro se ligará a 0.0.0.0:4713 , então a segunda instância não poderá! Meu kodi não me permite reiniciar o pulseaudio, então é necessário reiniciar o computador depois de alterar o arquivo de configuração.

Para fazer o coletor remoto realmente aparecer nos clientes, você precisa (no cliente):

  • carregue o módulo module-zeroconf-discover ( pactl load-module module-zeroconf-discover ) e
  • use paprefs para ativar coletores remotos. Você precisa marcar a primeira caixa de seleção na primeira guia paprefs shows. (Simplesmente carregar o módulo não foi o suficiente para mim.)
  • reinicie o avahi-daemon no cliente.

Você pode usar avahi-browse -a no seu cliente para ver se ele realmente vê seu serviço pa. A linha importante ficará assim:

+  wlan0 IPv4 root@raspbmc                   PulseAudio Sound Server local

Eu fiz isso há cerca de 2h e isso não funciona para mim. Sim, o coletor remoto aparece em pavucontrol e eu posso configurá-lo como coletor padrão e controlar seu volume, mas o spotify não funcionaria (não toca música. Foi meu único teste). Quando eu abro um terminal e executo export PULSE_SERVER=rpi02.local:4713; spotify ele funciona. A abordagem de configuração de PULSE_SERVER funciona imediatamente, sem nenhum dos shenanigans do zeroconf. (Isso talvez seja um problema do Ubuntu).

E se você pretende envolver o Wi-Fi, há outro problema específico do RPI:

Existe o problema comum de reprodução de áudio distorcida ao usar o pulseaudio do Pi remotamente em uma rede. Aparentemente, usar wi-fi freqüentemente aciona esse problema, mas ainda é um problema específico do hardware Pi com uma solução disponível.

  1. No seu RPi: sudo sed -i 's/^\(load-module module-udev-detect\)/ tsched=0/' /etc/pulse/system.pa
  2. reinicie o pulseaudio no Pi
  3. conecte clientes remotos ao servidor pa no Pi

Este é um problema conhecido declarado junto com essa solução em kodi.wiki . Ao ler tsched , por exemplo, no ubunutu SE , aprendemos que é um problema de tempo e surge do hardware de som . Colocando tsched=0 o Linux usa um modelo de temporização diferente, que eu acredito ser mais intenso na CPU. Com esta solução, o serviço pulseaudio requer 17% de CPU no meu B + ao reproduzir um fluxo remoto.

    
por 01.01.2015 / 08:48