MPD と pulseaudio

MPD と pulseaudio

最近、Ubuntu 14.10 をクリーン インストールしたのですが、またしても MPD に問題が残ってしまいました。前回はなんとか解決できたと思うのですが、どう解決したのかよくわかりません。

私の問題は、MPD で外付け Bluetooth スピーカーを使用できるようにすることです。さらに良いのは、接続されたスピーカーと Bluetooth スピーカーの両方を同時に使用できるようにしたいことです。

残念ながら、MPD は Gnome オーディオ設定でオーディオを生成するアプリケーションの下に表示されないため、Bluetooth スピーカーを使用するという私の指示は無視されます。これは、MPD が Pulseaudio ではなく Alsa を使用しているためだと思います。

さて、私のmpd.confには次の行があります

audio_output {
    type        "pulse"
    name        "MPD"
#   server      "localhost"
}

サーバー行のコメント解除も試みましたが、この場合、MPD は起動すらしません。

mpd明確に言うと、MPD は、グループpulseおよびの下にあるユーザー の下で実行されていますpulse-accessが、これでは十分ではないようです。

現在、自分のユーザーで MPD を実行できると思います。これにより、問題の一部が解決される可能性がありますが、この PC の他のユーザーも音楽を聴きたい可能性があるため、実行は控えたいと思います。

MPD で Pulseaudio を使用する (またはデフォルト以外のスピーカーに接続するために必要なことを行う) 正しい方法は何ですか?

答え1

システム全体モードの MPD とは異なり、PulseAudio はユーザー空間で実行されます。つまり、Bluetooth の検出や Bluetooth オーディオ シンクの提供を含むすべての pulseaudio 設定は、ユーザー セッションから実行されます。

MPDデーモンは、システム全体で実行されている場合、ユーザーセッションで実行されているPulse Audioデバイスにアクセスできません。理論的にはPulse Audioをシステム全体で実行することは可能ですが、これは推奨されません少なくともデスクトップ セットアップではそうすべきではありません。その場合は、ユーザー空間から MPD を実行する方がはるかに良い選択肢になります。

実行中の PulseAudio サーバーが提供するデバイスを引き続き利用できるようにするために、PulseAudio と MPD の両方の TCP ストリーミング機能を使用します。

これには次のものが必要です/etc/mpd.conf:

audio_output {
       type     "pulse"
       name     "My PULSE Device"
       server   "localhost"
}

次に、実行中の PulseAudio サーバーにストリーミングするための TCP プロトコルもロードする必要があります。これは、ユーザーがログインするたびにロードされるように に追加できます/etc/pulse/default.pa(または でテストするために CLI から起動しますpacmd load-module)。

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 # IP of localhost

免責事項:これは Bluetooth オーディオ デバイスへの切り替えには機能するはずですが、14.10 テスト システムで Bluetooth ドングルに問題があるため、これをテストできませんでした。

答え2

@Takkat が提案した解決策も、少し修正すればうまくいきました:

Debian Buster では、 mpd.confオプションlocalhostで を置き換えるだけで済みましたが、そうしないと mpd が IPv6 アドレスで接続しようとして失敗しました。127.0.0.1server::1

ERROR: Failed to open "My PULSE Device" [pulse]; failed to connect: Access denied

(コメントではなく回答で申し訳ありません。私はここに来たばかりで、コメントするのに十分なポイントをまだ持っていません。誰かがこのメッセージを移動したり削除したりしても、私にとっては問題ありません)。

関連情報