Estoy tratando de crear un reproductor de música que pueda manejar la mayoría de los comandos MPRIS.
Durante la reproducción de youtube, playerctl enumera el reproductor de firefox (firefox.instance{id}), y si tiene una lista de reproducción, puedo saltar al elemento anterior/siguiente usando $ playerctl -p firefox.instance{id} next
. Esto también funciona en cromo.
Quiero implementar el mismo comportamiento en una aplicación React.js, pero primero estoy buscando una solución basada en html/javascript.
Una de mis conjeturas es que esto es imposible (sin usar un complemento del navegador), porque Firefox implementa esto manualmente para cada sitio web compatible.
Tal vez hice algo mal, pero no importa lo que busque, no pude encontrar ninguna información al respecto.
¡Gracias por leer/comentar!
Media Session API parece resolver este problema bastante bien: https://developer.mozilla.org/en-US/docs/Web/API/Media_Session_API
Este detector de eventos se ejecuta cada vez que se ejecuta $ playerctl -p firefox.instance{id} next
(o cuando cualquier otro cliente MPRIS llama a 'next', como KDE connect en Android):
navigator.mediaSession.setActionHandler('previoustrack', function() { /* Code excerpted. */ });
Incluso funciona en Chrome (excepto el evento skipad
). Se puede encontrar más información en la página 'API de sesión de medios' de MDN Web Docs que vinculé anteriormente.