PulseAudioを実行する方法は?


28

Raspberry Piを、ネットワーク経由でオーディオを再生できるPulseAudioシンクとして使用したいと思います。

まず第一に、Pulseaudioをローカルで実行し、さまざまなエラーに遭遇したいと思います。推奨されるDebianイメージを使用しています。

PulseAudioを起動して実行するための最良の手順は何ですか?


これは私が今まで試したことです:

手順

これまでの私の手順は次のようになりました。

PulseaudioとVLCをインストールします。

sudo apt-get install pulseaudio

pulseaudioシンクを使用するようにGStreamerを構成します。

gconftool-2 -t string --set /system/gstreamer/0.10/default/audiosink pulsesink

オーディオデバイスのカーネルモジュールをロードします

sudo modprobe snd_bcm2835

mp3でVLCを実行する

vlc 

問題点

VLCが繰り返しクラックし、このエラーを出力します:

[0x7503d0] alsa audio output error: cannot write: Broken pipe

発生しているエラーを表示できますか?
darryn.ten

回答:


9

次の手順で、ALSAシンクを使用してRaspberry Piで動作するようにしました。

必要なファイルをインストールするには:

sudo apt-get install pulseaudio pulseaudio-module-zeroconf alsa-utils avahi-daemon

ALSAを有効にするには:

sudo modprobe snd-bcm2835                      # load module for single boot
echo "snd-bcm2835" | sudo tee -a /etc/modules  # load module for persistance

ネットワークを設定するには:

sudo nano /etc/pulse/default.pa

行のコメントを外します。

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16
load-module module-zeroconf-publish

pulseaudioサーバーを起動するには、以下を使用します:

pulseaudio -D

paplay(sudo apt-get install pulseaudio-utils)でwavファイルを再生することで動作することをテストできるはずです。また、システムのサウンドコントロールパネルでシンクを選択することにより、ネットワーク経由でも動作することをテストできるはずです。

以下を使用して、システム全体のモードでセットアップすることもできます

sudo pulseaudio --system 

pulseaudio-module-zeroconfapt-getインストール部分に欠落しています。おそらくpulseaudio --log-level=debug問題のトラブルシューティングにも言及する必要があります。音源(ラズベリーパイではありません)で、paprefspulseaudio confを簡単に概観するために起動する必要があります(X11がある場合)。pulseaudio疑わしいときは再起動することを忘れないでください。
vaab

7

起動時にpulseaudioを起動したいが、ユーザーレベルのサービスとして起動したい場合は、systemdユニットファイルを作成できます。pulseaudioはシステムモードでの実行を好まないため、これが役立つ場合があります。https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/

これが/etc/systemd/system/pulseaudio.serviceに書いたサービスです

[Unit]
Description=PulseAudio Sound System
Before=sound.target

[Service]
User=pi
BusName=org.pulseaudio.Server
ExecStart=/usr/bin/pulseaudio
Restart=always  

[Install]
WantedBy=session.target

Before =は、sound.targetが初期化されるまで待つように指示します。BusName =はそれをD-Busに接続しますWantedBy = session.targetは有用なデフォルトですが、それが何をするのか本当に分かりません。


どうやらこれを入れ~/.config/systemd/user/pulseaudio.serviceて、--userフラグ付きのsystemdを使用してroot権限を回避できるようです。
jchook

6

アナログ出力を使用して、Wheezy raspbian(2012-10-28)でpulseaudioを実行するのに苦労しました。以下は、(システムモードではなく)セッションごとのモードで動作させるために私がやったことです。システムモードも同様に機能する可能性がありますが、試していません。サーバーのセットアップにはさらに作業が必要です。私はこの情報をさまざまな場所で見つけました。ここでそれを集めることが誰かの助けになることを願っています。

pulseaudioをインストールし、ユーザー(ericなど)がオーディオグルー​​プの一部であることを確認します。

sudo apt-get install pulseaudio pulseaudio-utils
sudo adduser eric audio

/etc/asound.confを次のように変更します。これにより、pulseaudioがデフォルトでalsaデバイスとして使用されるように設定されるため、アプリケーションは追加の設定なしでalsaデバイスを使用します。最初の2つの宣言(コメント付きの宣言を含む)は元のファイルにありました。

pcm.mmap0 {
    type mmap_emul;
    slave {
      pcm "hw:0,0";
    }
}

#pcm.!default {
#  type plug;
#  slave {
#    pcm mmap0;
#  }
#}

pcm.pulse { type pulse }
ctl.pulse { type pulse }
pcm.!default { type pulse }
ctl.!default { type pulse }

/etc/pulse/daemon.confに次の行を追加します。

default-sample-rate = 48000
resample-method = trivial

trivial最低品質の方法ですが、約6%のCPUを使用します。src-sinc-fastest私のためにも働きましたが、約25%のCPUを使用します。その他も同様に機能する場合があります。この後のことは、私はその必要性をよく理解していませんが、魔法の成分のように思えました。あなたはできますここでそれについての詳細を読みます

最後に、曲の再生間で音声がポップしないようにするには、次のように/etc/pulse/default.paのこの行をコメント化します。

#load-module module-suspend-on-idle

2つのソースを一度に再生すると、まだいくつかのドロップアウトがあります。その解決策を見つけた場合は、この回答に追加します。


ネットワーク経由でオーディオを再生する場合、PulseAudioはtrivial私でも約16%のCPUを使用していました。
ネイサンオスマン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.