Evitar que MPRIS reconozca una aplicación

Evitar que MPRIS reconozca una aplicación

A menudo tengo mi reproductor de audio (normalmente Audacious v. 3.9) ejecutándose mientras el navegador Chrome también se ejecuta. Si abro un vídeo en Chrome, parece "reclamar" controles MPRIS del reproductor de audio. La única forma de hacer que mis teclas de acceso directo controlen Audacious es cerrar Chrome.

Debe haber una manera de evitar que MPRIS reconozca Chrome como un "reproductor multimedia". Supongo que el problema es que una (o ambas) de estas aplicaciones no "afirman" que MPRIS funciona correctamente. De acuerdo ala página de manual, esto se relaciona con una MPRIS_REMOTE_PLAYERvariable:

MPRIS_REMOTE_PLAYER
Si no está configurado o está configurado en *, mpris-remote se comunicará con el primer jugador que encuentre registrado en " org.mpris.*" a través de D-BUS. Si sólo tiene un reproductor compatible con MPRIS en ejecución, estará bien. Si tiene más de uno en ejecución, querrá configurar esta variable con el nombre del reproductor al que desea conectarse. Por ejemplo, si se establece en foo, intentará comunicarse con el jugador en " org.mpris.foo" y fallará si no existe nada con ese nombre.

Mi problema es que no sé cómo configurar esta variable. Busqué en el editor D-bus algo correspondiente a esto (en la analogía en una respuesta sobrereproductores multimedia en la bandeja), pero no hay ninguna configuración relevante allí que pueda detectar.

Mientras tanto, he descubierto esto:

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

Entonces parece que Audacious tienesu "propia" identidad MPRISEntonces, ¿cómo puedo prevenir¿Chrome sea reconocido como un "reproductor multimedia" para propósitos MPRIS? Cualquier ayuda para configurarlo sería muy apreciada.

PDEstoy en Ubuntu 18.04 LTS.

Respuesta1

Si bien sería bueno saber si existe una solución "administrada por MPRIS" para este problema, existe una solución alternativa que utiliza la configuración en Chrome.

Parece que Chrome es bastante agresivo al "tomar el control" de las teclas/atajos multimedia. Esto se puede desactivar siguiendo estos pasos,encontrado en una publicaciónen el sitio GHacks.net:

Puede desactivar el indicador de Manejo de claves multimedia de hardware en Chrome actualmente para evitar que Google Chrome restrinja el acceso a las claves multimedia. Así es como se hace:

  1. Cargar chrome://flags/#hardware-media-key-handlingen la barra de direcciones de Chrome; esto debería abrir la bandera derecha cuando esté cargado.
  2. Establezca el indicador Manejo de claves de medios de hardware enDesactivado.
  3. Reinicie Google Chrome.

Cuando configuré esta opción en mi máquina, Chrome ofreció un botón "Reiniciar" que reiniciaba el navegador con las pestañas de la sesión anterior/reiniciada intactas.

Esto soluciona mi problema, con eladvertenciaque si existe una "solución" MPRIS (es decir, utilizar la especificación MPRIS para "ocultar" un posible reproductor multimedia), todavía me gustaría saberlo. ;)

Respuesta2

Acabo de "descubrir"jugadorctl(o,en Github). playerctles una maravillosa herramienta de línea de comandos que resuelve algunos (¿todos?) de los problemas de OP. Del "Acerca de" oficial:

Playerctl es una utilidad y biblioteca de línea de comandos para controlar reproductores multimedia que implementan la especificación de interfaz MPRIS D-Bus. Playerctl facilita vincular acciones del reproductor, como reproducir y pausar, a teclas multimedia. También puede obtener metadatos sobre la pista en reproducción, como el artista y el título, para integrarlos en generadores de líneas de estado u otras herramientas de línea de comandos.

Para usuarios más avanzados, Playerctl proporciona una biblioteca introspectable disponible en su lenguaje de programación favorito que permite un control más detallado, como la posibilidad de suscribirse a eventos del reproductor multimedia u obtener metadatos como el artista y el título de la pista en reproducción.

Es una forma muy sencilla de utilizar los controles MPRIS mientras se dirige a reproductores multimedia concretos, entre muchas otras cosas. Se puede utilizar para abordar directamente la principal preocupación de OP de esta manera:

  1. Instalar playerctl,fácil desde el.deb
  2. Identifica al jugador que deseas controlar. Esto se puede hacer como lo hizo OP, desde el elemento final distinto en las respuestas a $ qdbus org.mpris.*, o (usándose playerctla sí mismo), con $ playerctl --list-all.
  3. Luego puedes seleccionar los controles que deseas usar con el nombre de ese jugador, por ejemplo: $ playerctl --player=audacious play-pause(que alterna entre reproducción y pausa). Ahora, ningún otro reproductor relacionado con MPRIS puede "robar" esa instrucción.
  4. Asigne ese comando a una tecla de método abreviado (Preferencias > Dispositivos > Teclado > +).

Por lo tanto, se convierte en una cuestión sencilla apuntar a instrucciones MPRIS que no serán "adoptadas" por ningún otro reproductor/aplicación, lo cual es la preocupación que genera OP.

Un conjunto completo de instrucciones está disponible enLéame de github de Playerctl.

información relacionada