mpd entrando em conflito com outras aplicações - tomando controle de pulso?

8

Explicação simples

Se o mpd estiver sendo reproduzido e o som tentar reproduzir através de outro aplicativo, x , o som do x não será emitido.

Se o som de outro aplicativo, x , estiver tocando e o mpd tentar reproduzir, nenhum som será emitido pelo mpd enquanto o som do x continua a ser reproduzido. / p>

Detalhes

Primeiramente, notei esse problema com o Flash, e esse continua sendo o cenário mais comum. Eu publiquei uma pergunta sobre isso antes de perceber que não era estritamente relacionado ao Flash, mas em vez disso é algo a fazer com mpd.

Minha maior frustração vem de tentar fazer o mpd funcionar novamente, já que não consigo definir nenhum método. Às vezes, pulseaudio -k parece ajudar, outras vezes sudo /etc/init.d/mpd restart , outras matando o Chromium (devido ao Flash) com SIGTERM . Na maioria das vezes, é uma combinação dos itens acima.

Acho que isso pode ser porque eu executo o mpd como outro usuário e uso o pulseaudio. Não é executado como root ou usuário atual. Além disso, o mpd é compilado com suporte de pulso.

Eu tentei muitas coisas, mas honestamente não consegui recitar, como já faz algum tempo. Eu prefiro não ir bisbilhotando sem alguma direção, mas eu ficaria muito feliz em corrigir 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"

Pergunta

Para manter uma pergunta: alguém sabe o que está causando isso ou como corrigi-lo sem executar o mpd como usuário atual?

    
por Jamie Schembri 04.03.2011 / 19:32

3 respostas

5

Eu tive esse problema quando comecei a usar o mpd, mas já faz algum tempo, então não consigo me lembrar exatamente do que fiz para consertá-lo!

Você tem as preferências do PulseAudio instaladas? Eu 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 Network Server, marque a caixa "Habilitar acesso à rede a dispositivos de som locais" e 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 "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ê isso é assim!)

Um guia simples para configurar o mpd para ser executado como usuário pode ser encontrado aqui: link

Para resumir, já que você já tem o mpd instalado:

1.) Pare com isso: sudo update-rc.d mpd disable

2.) Copie seu mpdconf para sua casa directiory (como .mpdconf) e altere as seguintes entradas para lugares onde seu usuário pode acessar e gravar:

% bl0ck_qu0te%

A página da qual estou tirando isso sugere apenas a criação de uma pasta .mpd em seu diretório inicial para essas coisas, exceto pelo seu diretório de músicas 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 o mpd iniciar automaticamente como um usuário quando fizer o login, vá para Startup Applications e adicione uma entrada para o mpd, então crie um arquivo de auto-inicialização em ~ / .config / autostart /.

% bl0ck_qu0te%

Provavelmente há desvantagens para a execução como usuário, então talvez isso não seja adequado às suas necessidades.

    
por Aibara 04.03.2011 / 21:37
2

Não tenho certeza se é exatamente o mesmo problema, mas com a minha antiga configuração default-ish mpd, acho que o mpd estava tentando iniciar seu próprio pulso de áudio como um usuário diferente (o usuário do mpd). Descobri que configurar minha saída de pulso em /etc/mpd.conf para usar um soquete para conectar é mais simples para evitar esse tipo de problema.

audio_output {
        type            "pulse"
        name            "My Pulse Output"
        server          "localhost"
}

Então você pode querer verificar paprefs que você aceita conexões locais

    
por Bill Robinson 02.01.2012 / 12:53
0

Quando executado como seu próprio usuário de acordo com as instruções do wiki, o mpd não poderá enviar o som para o servidor pulseaudio de outro usuário. Em vez de configurar o pulseaudio como um daemon do sistema, uma prática strongmente desencorajada pelo upstream, você pode configurar o mpd para usar o módulo tcp do pulseaudio para enviar o som para o localhost:

Primeiro, descomente o 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:

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
#load-module module-zeroconf-publish

Os intervalos IP adicionais na notação cidr podem ser adicionados usando; como o separador. Quando isso estiver concluído, reinicie o pulseaudio:

$ pulseaudio --kill
$ pulseaudio --start -or- start-pulseaudio-x11/kde

Em seguida, edite /etc/mpd.conf e adicione uma nova saída de pulso apontando para 127.0.0.1 como um servidor "remoto":

audio_output {
       type     "pulse"
       name     "Local Music Player Daemon"
       server       "127.0.0.1"
}

de link

    
por Pavel1114 10.03.2016 / 19:45