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は他のマシンにはまったく表示されません(お互いを見つけたときに正しく構成されています)。ここで何が問題になっていますか?
_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-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ハードウェア固有の問題です。
Sudo sed -i 's/^\(load-module module-udev-detect\)/\1 tsched=0/' /etc/Pulse/system.pa
これは、 Kodi.wiki でこのソリューションと一緒に述べられている既知の問題です。 tsched
、たとえば bunutu SE を読むと、これはタイミングの問題であり、サウンドハードウェアから発生していることがわかります。 _tsched=0
_を置くことにより、Linuxは異なるタイミングモデルを使用します。これはCPUをより集中的に使用すると私は信じています。このソリューションでは、pulseaudioサービスは1つのリモートストリームを再生するときにB +で17%のCPUを要求します。