web-dev-qa-db-ja.com

pulseaudioを使用したMPD

最近、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-accessの下にあるユーザーPulseの下で実行されていますが、これでは十分ではないようです。

今、私は自分のユーザーでMPDを実行できると信じており、これはいくつかの問題を解決する可能性がありますが、このPCの他のユーザーも音楽を聴きたいので、私はむしろそうしません。

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

5
Andrea

システムワイドモードの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"
}

次に、TCPプロトコルをロードして、実行中のPulseAudioサーバーにストリーミングする必要があります。これは、ユーザーがログインするたびに(または/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オーディオデバイスに切り替えても機能するはずですが、Bluetoothドングルに14.10テストシステムで問題があるため、これをテストできませんでした。

7
Takkat

@Takkatによって提案された解決策も少し変更を加えて機能しました。

Debian Busterでは、mpd.conf localhostオプションでserver127.0.0.1に置き換える必要がありました。過度にmpdはIPv6アドレス::1に接続しようとして失敗しました。

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

(コメントの代わりに答えを申し訳ありませんが、私はここに新しく、コメントするのに十分なポイントがありません。誰かがこのメッセージを移動または削除しても問題ありません。)

1
Saïmonn