API de sesión de medios

Proporcionar metadatos de medios y devoluciones de llamada en su PWA

Mejora la experiencia de los medios

Si está utilizando esta aplicación web con la configuración regional en inglés o alemán, verá un botón de reproducción de audio en la parte superior del artículo. Al hacer clic en el botón, se inicia una pista de audio de lectura en voz alta para el texto escrito. Sin modificaciones, esto funciona muy bien, pero pensé que podría mejorarlo.

Para proporcionar más datos e incluso controles de reproducción, ahora puede utilizar una nueva API disponible para aplicaciones web progresivas llamada "API de sesión multimedia". Si un navegador lo admite, la aplicación puede mejorar significativamente la experiencia multimedia.

  • proporcionar una carátula del álbum
  • proporcionar más información sobre la pista de audio, como el título, el nombre del álbum o el nombre del artista
  • proporcionar controles de reproducción, para que los usuarios puedan pausar u omitir partes de la pista de audio fuera de su aplicación web

Simplemente dicho, simplemente hecho

La implementación de la "API de sesión de medios" es muy sencilla y solo requiere unas pocas líneas de código.

function setMediaSessionMetaData(props){
  // Progressive enhancement of your PWA,
  // which means we have to check if the
  // new API is available.
  if(!('mediaSession' in navigator)){
    return;
  }
  
  navigator.mediaSession.metadata = new MediaMetadata({
    title: props.title,
    artist: props.artist
    album: props.album,
    artwork: props.artwork
  });
  
  // Add action handlers, if any.
  // For a complete list, check out the
  // MDN-link in the addendum.
  if(props.play){
    navigator.mediaSession.setActionHandler('play', function() { /* Code excerpted. */ });
  }
}

// ... Later in your code ...

setMediaSessionMetaData({
  title: "Song name",
  artist: "Artist name",
  album: "Album name",
  artwork: [{ 
    src: 'https://dummyimage.com/512x512',
    sizes: '512x512',
    type: 'image/png' }]
});

Si está utilizando TypeScript, también hay un paquete con las definiciones de tipo relacionadas disponibles en NPM.

Una vez que se hayan agregado los cambios, puede verificar su implementación reproduciendo la pista de audio en un navegador compatible con la API, como Google Chrome. Si todo está configurado correctamente, la ventana multimedia en Chrome ahora mostrará los nombres proporcionados, las ilustraciones del álbum y los controles, según su implementación.

Image b313f068c476

Palabras de cierre

La "API de sesión de medios" es una adición muy simple a su PWA, que permite a sus usuarios experimentar canciones o videos con metadatos y controles mejorados. Actualmente, la API está marcada como experimental, pero ya se puede utilizar con la mayoría de los navegadores modernos.