Impedir que o MPRIS reconheça um aplicativo

Impedir que o MPRIS reconheça um aplicativo

Muitas vezes tenho meu reprodutor de áudio (geralmente Audacious v. 3.9) em execução enquanto o navegador Chrome também está em execução. Se eu abrir um vídeo no Chrome, ele parece "reivindicar" os controles MPRIS do reprodutor de áudio. A única maneira de fazer com que minhas teclas de atalho controlem o Audacious é fechar o Chrome.

Deve haver uma maneira de impedir que o MPRIS reconheça o Chrome como um "media player". Presumo que o problema é que um (ou ambos) desses aplicativos não está "reivindicando" as funções do MPRIS corretamente. De acordo coma página de manual, isso está relacionado a uma MPRIS_REMOTE_PLAYERvariável:

MPRIS_REMOTE_PLAYER
Se não for definido ou definido como *, o mpris-remote se comunicará com o primeiro player que encontrar registrado em " org.mpris.*" através do D-BUS. Se você tiver apenas um player compatível com MPRIS em execução, tudo bem. Se você tiver mais de um em execução, defina esta variável com o nome do player ao qual deseja se conectar. Por exemplo, se definido como foo, ele tentará se comunicar com o jogador em " org.mpris.foo" e falhará se não existir nada com esse nome.

Meu problema é que não sei como definir essa variável. Procurei no editor D-bus algo correspondente a isso (por analogia em uma resposta sobrereprodutores de mídia na bandeja), mas não há nenhuma configuração relevante que eu possa identificar.

Enquanto isso, descobri isso:

$ qdbus org.mpris.*
org.mpris.MediaPlayer2.audacious
org.mpris.MediaPlayer2.chrome.instance13448

Então parece que o Audacious temsua "própria" identidade MPRIS, então como posso evitarO Chrome seja reconhecido como um "media player" para fins de MPRIS? Qualquer ajuda para configurar isso seria muito apreciada.

PsEstou no Ubuntu 18.04 LTS.

Responder1

Embora ainda seja bom saber se existe uma solução "gerenciada pelo MPRIS" para esse problema, há uma solução alternativa usando as configurações do próprio Chrome.

Parece que o Chrome é bastante agressivo ao "assumir" o controle das teclas/atalhos de mídia. Isso pode ser desativado seguindo estas etapas,encontrado em uma postagemno site GHacks.net:

Você pode desativar o sinalizador Hardware Media Key Handling no Chrome atualmente para evitar que o Google Chrome restrinja o acesso às chaves de mídia. Aqui está como isso é feito:

  1. Carregue chrome://flags/#hardware-media-key-handlingna barra de endereço do Chrome; isso deve abrir o sinalizador certo quando carregado.
  2. Defina o sinalizador Hardware Media Key Handling comoDesabilitado.
  3. Reinicie o Google Chrome.

Quando eu configurei esse botão em minha máquina, o Chrome ofereceu um botão "Reiniciar" que reiniciou o navegador com as guias da sessão anterior/reiniciada intactas.

Isso resolve o meu problema - com oembargoque se houver uma "solução" MPRIS (ou seja, usar a especificação MPRIS para "ocultar" um reprodutor de mídia em potencial), eu ainda gostaria de saber. ;)

Responder2

Acabei de "descobrir"Jogadorctl(ou,no Github). playerctlé uma ferramenta de linha de comando maravilhosa que resolve alguns (todos?) Problemas do OP. Do "Sobre" oficial:

Playerctl é um utilitário de linha de comando e uma biblioteca para controlar reprodutores de mídia que implementam a especificação de interface MPRIS D-Bus. Playerctl facilita vincular ações do player, como reproduzir e pausar, a teclas de mídia. Você também pode obter metadados sobre a faixa em reprodução, como artista e título, para integração em geradores de linha de status ou outras ferramentas de linha de comando.

Para usuários mais avançados, o Playerctl fornece uma biblioteca introspectável disponível em sua linguagem de script favorita que permite um controle mais detalhado, como a capacidade de assinar eventos do media player ou obter metadados, como artista e título da faixa em reprodução.

É uma maneira muito simples de usar os controles MPRIS ao direcionar reprodutores de mídia específicos, entre muitas outras coisas. Pode ser usado para abordar diretamente a principal preocupação do OP desta forma:

  1. Instalar playerctl,fácil do.deb
  2. Identifique o jogador que você deseja controlar. Isso pode ser feito como o OP fez, a partir do elemento terminal distinto nas respostas a $ qdbus org.mpris.*, ou (usando playerctl-se), com $ playerctl --list-all.
  3. Você pode então direcionar os controles que deseja usar com o nome daquele jogador, por exemplo: $ playerctl --player=audacious play-pause(que alterna entre reproduzir/pausar). Agora, nenhum outro player relacionado ao MPRIS pode “roubar” essa instrução.
  4. Atribua esse comando a uma tecla de atalho (Preferências > Dispositivos > Teclado > +).

Torna-se assim uma questão simples direcionar instruções MPRIS que não serão "assumidas" por algum outro player/aplicativo, que é a preocupação desencadeadora do OP.

Um conjunto completo de instruções está disponível emLeiame do github do Playerctl.

informação relacionada