Meu ambiente tem duas saídas de áudio: HDMI e alto-falante Bluetooth. Geralmente ambos funcionam corretamente. Por exemplo,
#this plays sound via bluetooth speaker
$ aplay -D default jingle.wav
#this plays sound via HDMI
$ aplay -D plughw:1,7 jingle.wav
No entanto, mpc play
não reproduz nenhum som. My /etc/mpd.conf
é um padrão, exceto para o diretório de música. Então
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
}
Eu uso um diretório de música remoto ( smb
protocolo) e a conexão está ok. De acordo com man mpd.conf
, o valor padrão do device
campo é "default"
. Mas mpc play
não reproduz som, embora eu espere que seja reproduzido pelo alto-falante bluetooth como o aplay -D default
comando acima. sudo mpd --no-daemon --stderr
diz
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
A última linha pode ser a causa, então defino o mixer_type
campo como "none"
. Mas ainda sem som. mpc play
sucessos e a posição atual (por exemplo 00:56/3:20 (58%)
) progride, mas nenhum som.
Como posso usar meu alto-falante bluetooth? Se eu definir device
para plughw:1,7
, mpc play
na verdade reproduz o som via HDMI conforme o aplay
comando acima. No entanto, eu gostaria de usar o alto-falante bluetooth.
Meio Ambiente:
$ lsb_relase -d
Description: Linux Mint 19 Tara
$ mpd --version
Music Player Daemon 0.20.18
Eu instalei mpd
pelo sudo apt install mpd
.
A questão foi perfeitamente resolvida pelo Music Player Daemon/Dicas e truques - PulseAudio . E MPD com pulseaudio também é útil.
O site é realmente suficiente, mas deixe-me escrever o que fiz. Em primeiro lugar, eu configurei o
device
campo/etc/mpd.conf
para,"alsa"
mas isso está errado. Um alto-falante bluetooth é gerenciado por padrão não por,alsa
mas porpulseaudio
(pelo menos no Linux Mint e embora você possa usar um alto-falante bluetoothalsa
usando, por exemploBlueALSA
, ). Portanto, o valor do campo deve ser"pulse"
. No entanto, por padrão,pulseaudio
está sendo executado em um espaço do usuário enquantompd
é executado em todo o sistema. Portantompd
, não pode acessar as configurações dapulseaudio
sessão do usuário atual. Parampd
ver a configuração, você pode ativar apulseaudio
funcionalidade remota do :e mude a linha de
para isso (descomente e adicione algumas palavras)
e reinicie
pulseaudio
para refletir essa alteração.Agora você pode acessar
pulseaudio
, usandotcp
protocolo e via endereço ip127.0.0.1
(geralmente élocalhost
). Por fim,mpd
a configuração de 's deve ser alterada:e defina o valor do
audio_output
campo como abaixoe reinicie
mpd
para refletir a mudança.Isso é tudo.
Suplemento:
A propósito, o fato de ter dado certo,
aplay -D default jingle.wav
masmpc play
não veio da diferença do espaço de execução, ou seja, rodando em todo o sistema ou como uma sessão de usuário. Portanto, comparar os resultados não faz sentido. Eu deveria ter comparadompc play
comsudo -u mpd aplay -D default jingle.wav
. O último comando falha e este é um resultado esperado.