내 환경에는 HDMI와 Bluetooth 스피커라는 두 가지 오디오 출력이 있습니다. 일반적으로 모두 잘 작동합니다. 예를 들어,
#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
필드의 기본값은 다음과 같습니다. 하지만 위의 명령에 따라 블루투스 스피커를 통해 재생하고 싶은데도 소리가 재생되지 않습니다. 설명하다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%)
진행이 되지만 소리가 나지 않습니다.
블루투스 스피커를 어떻게 사용하나요? device
로 설정하면 plughw:1,7
실제로 mpc play
위 명령에 따라 HDMI를 통해 사운드가 재생됩니다 aplay
. 하지만 블루투스 스피커를 사용하고 싶습니다.
환경:
$ 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
잘못되었습니다. 기본적으로 블루투스 스피커는 관리자에 의해 관리되지 않습니다(적어도 Linux Mint에서는 예를 들어 블루투스 스피커를 사용할 수 있음). 따라서 이 필드의 값은 다음과 같아야 합니다. 그러나 기본적으로 이는 사용자 공간 및 시스템 전체에서 실행됩니다. 따라서 현재 사용자 세션의 설정에 액세스할 수 없습니다. 설정을 보려면 원격 기능을 켜면 됩니다./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
. 후자의 명령은 실패할 것으로 예상됩니다.