私の環境には、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 play
aplay -D default
sudo 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"
alsa
pulseaudio
alsa
BlueALSA
"pulse"
pulseaudio
mpd
mpd
pulseaudio
mpd
pulseaudio
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
使用し、tcp
IPアドレス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
。後者のコマンドは失敗すると予想されます。