web-dev-qa-db-ja.com

Raspbmc(Kodi)でネットワークストリームにpulseaudioを使用する方法は?

Raspberry PiでRaspbmc(Kodi 14を使用)を使用しています。ここで、pulseaudioを設定して、すべてのLinuxコンピューターからRaspberryPiに音楽を簡単にストリーミングできるようにします。私の問題は、RaspberryPiでpulseaudioを実行できないことです。次の手順を試しました。

1.pulseaudioをインストールします

Sudo apt-get install pulseaudio pulseaudio-module-zeroconf

2.pulseaudioの設定

Sudo nano /etc/Pulse/default.pa

次の行を追加しました。

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

.pulseaudioを開始します

まず、Pulseをデーモンとして起動しようとしました。

pulseaudio -D

また、システム全体で起動しようとしました。

Sudo pulseaudio --system 

しかし、Pulseは他のマシンにはまったく表示されません(お互いを見つけたときに正しく構成されています)。ここで何が問題になっていますか?

4
user5950

_system.pa_ではなく、_default.pa_を編集する必要があります。 RPIにログインして_ps fax_を実行すると、次の行に気付くでしょう。

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

_--system_は、pulseaudioに_system.pa_ではなく_default.pa_を読み取らせるものです。また、Kodiはすでにpulseaudioのインスタンスを起動しており、単に別のインスタンスを起動することはできません。最初のインスタンスは_0.0.0.0:4713_にバインドされるため、2番目のインスタンスはバインドできません。 Kodiでpulseaudioを再起動できないため、構成ファイルを変更した後に再起動する必要があります。

リモートシンクを実際にクライアントに表示するには、(クライアント上で)次のことを行う必要があります。

  • モジュールをロードする_module-zeroconf-discover_(_pactl load-module module-zeroconf-discover_)そして
  • paprefsを使用して、リモートシンクを有効にします。 paprefsが表示する最初のタブの最初のチェックボックスをオンにする必要があります。 (モジュールをロードするだけでは十分ではありませんでした。)
  • クライアントでavahi-daemonを再起動します。

クライアントで_avahi-browse -a_を使用して、paサービスが実際に表示されるかどうかを確認できます。重要な行は次のようになります。

_+  wlan0 IPv4 root@raspbmc                   PulseAudio Sound Server local
_

私はちょうど約2時間前にこれをしました、そしてそれは私にとって実際にはうまくいきません。はい、リモートシンクはpavucontrolに表示され、デフォルトのシンクとして設定して音量を制御できますが、spotifyは機能しません(音楽を再生しません。私の唯一のテストでした)。ターミナルを開いて_export Pulse_SERVER=rpi02.local:4713; spotify_を実行すると、機能します。 _Pulse_SERVER_を設定するアプローチは、このzeroconfシェナニガンがなくても、箱から出してすぐに機能します。 (これはおそらくUbuntu特有の問題です。)

また、wifiを使用する場合は、RPI固有の問題がもう1つあります。

Piのpulseaudioをネットワーク経由でリモートで使用すると、オーディオ再生が文字化けするという一般的な問題があります。どうやらwifiを使用するとこの問題が頻繁に発生しますが、それでも利用可能なソリューションではPiハードウェア固有の問題です。

  1. RPiの場合:Sudo sed -i 's/^\(load-module module-udev-detect\)/\1 tsched=0/' /etc/Pulse/system.pa
  2. piでpulseaudioを再起動します
  3. リモートクライアントをPi上のpaサーバーに接続します

これは、 Kodi.wiki でこのソリューションと一緒に述べられている既知の問題です。 tsched、たとえば bunutu SE を読むと、これはタイミングの問題であり、サウンドハードウェアから発生していることがわかります。 _tsched=0_を置くことにより、Linuxは異なるタイミングモデルを使用します。これはCPUをより集中的に使用すると私は信じています。このソリューションでは、pulseaudioサービスは1つのリモートストリームを再生するときにB +で17%のCPUを要求します。

1
Bananguin