Bluetoothスピーカーを搭載したMPDから音が出ません。

Bluetoothスピーカーを搭載したMPDから音が出ません。

私の環境には、HDMIとBluetoothスピーカーという2つのオーディオ出力があります。通常、すべてがうまく動作します。例えば、

#this plays sound via bluetooth speaker
$ aplay -D default jingle.wav

#this plays sound via HDMI
$ aplay -D plughw:1,7 jingle.wav

しかし、mpc play音は再生されません。私は/etc/mpd.conf音楽ディレクトリを除いてすべてデフォルトです。だから

music_directory     "smb://xxx.xxx.xx.x/some_directory"
...
audio_output {
    type        "alsa"
    name        "My ALSA Device"
    #   device      "hw:0,0"    # optional
    #   mixer_type      "hardware"      # optional
    #   mixer_device    "default"   # optional
    #   mixer_control   "PCM"       # optional
    #   mixer_index "0"     # optional
}

リモートミュージックディレクトリ(smbプロトコル)を使用しており、接続が正しく機能しています。によると、man mpd.confフィールドのデフォルト値は次のとおりです。しかし、上記のコマンドに従ってBluetoothスピーカーで再生したいのですが、音は再生されません。説明するdevice"default"mpc playaplay -D defaultsudo mpd --no-daemon --stderr

exception: OutputThread could not get realtime scheduling, continuing anyway: sched_setscheduler failed: Operation not permitted
avahi: Service 'Music Player' successfully established.
client: [0] opened from xxx.x.x.x:xxxxx
No protocol specified
xcb_connection_has_error() returned true
No protocol specified
No protocol specified
xcb_connection_has_error() returned true
exception: Failed to read mixer for 'My ALSA Device': no such mixer control: PCM

最後の行が理由かもしれないので、mixer_typeフィールドをに設定しました"none"。しかし、まだ音が出ません。現在の場所(たとえば)でmpc play成功と00:56/3:20 (58%)進行が行われますが、音は出ません。

Bluetoothスピーカーをどのように使用しますか?deviceに設定すると、plughw:1,7実際にmpc play上記のコマンドに従ってHDMI経由でサウンドが再生されますaplay。しかし、Bluetoothスピーカーを使いたいです。

環境:

$ lsb_relase -d
Description:    Linux Mint 19 Tara

$ mpd --version
Music Player Daemon 0.20.18

mpdインストールプロセスを経ましたsudo apt install mpd

ベストアンサー1

この問題は完全に解決されました音楽プレーヤーデーモン/ヒントとコツ - PulseAudio。そしてパルスオーディオを含むMPDとても役に立ちます。

そのサイトは実際には十分に素晴らしいですが、私がしたことについて書いてみましょう。まず、toフィールドを設定しましたが、device間違っています。デフォルトでは、Bluetoothスピーカーは管理者によって管理されていません(少なくともLinux Mintでは、例えばBluetoothスピーカーを使用できます)。したがって、このフィールドの値は次のようになります。ただし、デフォルトでは、これはユーザースペースとシステム全体で実行されます。したがって、現在のユーザーセッションの設定にアクセスできません。設定を表示するには、リモート機能をオンにするだけです。/etc/mpd.conf"alsa"alsapulseaudioalsaBlueALSA"pulse"pulseaudiompdmpdpulseaudiompdpulseaudio

sudo cp /etc/pulse/default.pa /etc/pulse/default.pa.bak
sudo vi /etc/pulse/default.pa

そして行を変更

#load-module module-native-protocol-tcp

これに(コメントを外して単語を追加してください)

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1

pulseaudioこの変更を反映するには、再起動してください。

#Note there is no `sudo` prefix.
#As written above, `pulseaudio` runs in a user session.
pulseaudio --kill
pulseaudio --start

これでプロトコルをpulseaudio使用し、tcpIPアドレス127.0.0.1(通常は)を介してlocalhostアクセスできます。最後にmpd変更する設定は次のとおりです。

sudo cp /etc/mpd.conf /etc/mpd.conf.bak
sudo vi /etc/mpd.conf

フィールドの値をaudio_output次のように設定します。

audio_output {
    type        "pulse"
    name        "arbitrary_name_which_you_like"
    server      "localhost"
}

mpd変更を反映するには再起動してください。

#Note there is `sudo` prefix.
sudo systemctl restart mpd

それはすべてです。


再充填する:

ところで、aplay -D default jingle.wav成功しましたがmpc play、実行スペースの違い、つまりシステム全体で実行されたり、ユーザーセッションで実行されるわけではありません。したがって、結果を比較することは意味がありません。mpc play比較してみるべきですねsudo -u mpd aplay -D default jingle.wav。後者のコマンドは失敗すると予想されます。

おすすめ記事