Explicação simples
Se o mpd estiver sendo reproduzido e o som tentar reproduzir outro aplicativo, x , o som de x não será emitido.
Se o som de outro aplicativo, x , estiver sendo reproduzido e o mpd tentar reproduzir, nenhum som será emitido pelo mpd enquanto o som de x continuar sendo reproduzido.
Detalhes
Percebi esse problema com o Flash e esse continua sendo o cenário mais comum. Eu postei uma pergunta sobre isso antes de perceber que não era estritamente relacionado ao Flash, mas sim algo a ver com o mpd.
Minha maior frustração vem de tentar fazer com que o mpd funcione novamente, pois não consigo identificar nenhum método. Às vezes pulseaudio -k
parece ajudar, outras vezes sudo /etc/init.d/mpd restart
, outras matam o Chromium (devido ao Flash) com SIGTERM
. Na maioria das vezes, é uma combinação dos itens acima.
Eu acho que isso pode ser porque eu corro mpd como outro usuário e uso pulseaudio. Não é executado como usuário root ou atual. Além disso, o mpd é compilado com suporte a pulsos.
Eu tentei várias coisas, mas sinceramente não consegui recitar o que, como já faz algum tempo. Prefiro não ficar bisbilhotando sem alguma direção, mas ficaria muito feliz em resolver esse problema de uma vez por todas.
mpd.conf
Simplificado removendo comentários / linhas em branco.
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/tag_cache"
log_file "/var/log/mpd/mpd.log"
pid_file "/var/run/mpd/pid"
state_file "/var/lib/mpd/state"
user "mpd"
bind_to_address "wilson"
input {
plugin "curl"
}
audio_output {
type "pulse"
name "My Pulse Output"
}
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"
Questão
Para manter essa questão: alguém sabe o que está causando isso ou como corrigi-lo sem executar o mpd como o usuário atual?
fonte
Respostas:
Eu tive esse problema quando comecei a usar o mpd, mas já fazia algum tempo, então não me lembro exatamente o que fiz para corrigi-lo!
Você tem as preferências do PulseAudio instaladas? Encontrei esta dica em um fórum:
sudo apt-get install paprefs
Em seguida, abra as preferências do PulseAudio no menu: Sistema-> Preferências-> Preferências do PulseAudio Clique na guia Servidor de rede, marque a caixa "Habilitar acesso à rede a dispositivos de som locais" e, finalmente, marque a caixa "Não requer autenticação". Depois disso, reinicie o mpd:
sudo /etc/init.d/mpd restart
No entanto ... acabei de perceber que o mpd funciona bem para mim e não tenho o "acesso de rede a dispositivos de som locais" ativado.
Eu acho que você pode estar certo sobre a necessidade de executar o mpd como o usuário atual, que é o que estou fazendo. (Eu não tenho idéia do porquê disso!)
Um guia simples para configurar o mpd para ser executado como usuário pode ser encontrado aqui: http://gmpc.wikia.com/wiki/MPD_INSTALL_USER_SERVICE_UBUNTU
Para resumir, já que você já possui o mpd instalado:
1.) Pare com isso:
sudo update-rc.d mpd disable
2.) Copie o mpdconf para o diretório doméstico principal (como .mpdconf) e altere as seguintes entradas para os locais onde o usuário pode acessar e gravar:
A página da qual estou tirando isso sugere apenas a criação de uma pasta .mpd em seu diretório pessoal para esse material, salve o diretório de música real.
3.) Comente a linha do usuário em .mpdconf:
#user "mpd"
4.) Agora você pode executar o mpd e atualizar o banco de dados.
5.) Para fazer com que o mpd seja iniciado automaticamente como usuário ao fazer login, vá para Aplicativos de Inicialização e adicione uma entrada para o mpd, depois crie um arquivo de inicialização automática em ~ / .config / autostart /.
Provavelmente, há desvantagens na execução como usuário, portanto, talvez isso não atenda às suas necessidades.
fonte
Não tenho certeza se é exatamente o mesmo problema, mas com minha antiga configuração padrão do mpd ish, acho que o mpd estava tentando iniciar seu próprio áudio de pulso como um usuário diferente (o usuário mpd). Achei que configurar minha saída de pulso no /etc/mpd.conf para usar um soquete para conectar é mais simples para evitar esse tipo de problema.
Em seguida, convém verificar os paprefs que você aceita conexões locais
fonte
.pulse-cookie
para/var/lib/mpd
que isso funcione, ou o pulseaudio falhoufailed to connect: Access denied
, embora não tenha certeza de que seja o caminho certo.Quando executado como seu próprio usuário, de acordo com as instruções da wiki, o mpd não poderá enviar som para o servidor pulseaudio de outro usuário. Em vez de configurar o pulseaudio como um daemon em todo o sistema, uma prática fortemente desencorajada pelo upstream, você pode configurar o mpd para usar o módulo tcp do pulseaudio para enviar som ao host local:
Primeiro, remova o comentário do módulo tcp em /etc/pulse/default.pa ou $ XDG_CONFIG_HOME / pulse / default.pa (normalmente ~ / .config / pulse / default.pa) e defina 127.0.0.1 como um endereço IP permitido; o diretório inicial tem precedência:
Intervalos de IP adicionais na notação cidr podem ser adicionados usando; como o separador. Quando isso estiver concluído, reinicie o pulseaudio:
Em seguida, edite o /etc/mpd.conf e adicione uma nova saída de pulso apontando para 127.0.0.1 como um servidor "remoto":
de https://wiki.archlinux.org/index.php/Music_Player_Daemon/Tips_and_tricks
fonte