Actualizaciones multimedia en Chrome 73

François Beaufort
François Beaufort

En este artículo, analizaremos las nuevas funciones multimedia de Chrome 73, que incluyen lo siguiente:

Compatibilidad con teclas multimedia de hardware

En la actualidad, muchos teclados tienen teclas para controlar las funciones básicas de reproducción de contenido multimedia, como reproducir y pausar, y la pista anterior y siguiente. Los auriculares también los tienen. Hasta ahora, los usuarios de computadoras de escritorio no podían usar estas teclas multimedia para controlar la reproducción de audio y video en Chrome. Esto cambia hoy.

Teclas multimedia del teclado
Teclas multimedia del teclado

Si el usuario presiona la tecla de pausa, el elemento multimedia activo que se reproduce en Chrome se pausará y recibirá un evento multimedia "pausado". Si se presiona la tecla de reproducción, se reanudará el elemento multimedia pausado anteriormente y recibirá un evento multimedia de "reproducción". Funciona independientemente de si Chrome está en primer o segundo plano.

En ChromeOS, las apps para Android que usan foco de audio ahora le indicarán a Chrome que pause y reanude el audio para crear una experiencia multimedia fluida entre sitios web en Chrome, apps de Chrome y apps para Android. Por el momento, solo es compatible con dispositivos ChromeOS que ejecutan Android P.

En resumen, se recomienda escuchar siempre estos eventos de medios y actuar en consecuencia.

video.addEventListener('pause', function() {
  // Video is now paused.
  // TODO: Let's update UI accordingly.
});

video.addEventListener('play', function() {
  // Video is now playing.
  // TODO: Let's update UI accordingly.
});

Espera, hay más calcomanías. Ahora que la API de Media Session está disponible en computadoras (antes solo se admitía en dispositivos móviles), los desarrolladores web pueden controlar eventos relacionados con el contenido multimedia, como el cambio de pista que activan las teclas multimedia. Actualmente, se admiten los eventos previoustrack y nexttrack.

navigator.mediaSession.setActionHandler('previoustrack', function() {
  // User hit "Previous Track" key.
});

navigator.mediaSession.setActionHandler('nexttrack', function() {
  // User hit "Next Track" key.
});

Chrome controla automáticamente las teclas de reproducción y pausa. Sin embargo, si el comportamiento predeterminado no te funciona, puedes configurar algunos controladores de acciones para “reproducir” y “pausar” para evitar esto.

navigator.mediaSession.setActionHandler('play', function() {
  // User hit "Play" key.
});

navigator.mediaSession.setActionHandler('pause', function() {
  // User hit "Pause" key.
});

La compatibilidad con teclas multimedia de hardware está disponible en ChromeOS, macOS y Windows. Linux llegará más adelante.

Consulta nuestra documentación para desarrolladores existente y prueba los ejemplos oficiales de Media Session.

Chromestatus Tracker | Error de Chromium

Contenido multimedia encriptado: Verificación de la política de HDCP

Gracias a la API de verificación de políticas de HDCP, los desarrolladores web ahora pueden consultar si se puede aplicar una política específica, p. ej., un requisito de HDCP, antes de solicitar licencias de Widevine y cargar contenido multimedia.

const status = await video.mediaKeys.getStatusForPolicy({ minHdcpVersion: '2.2' });

if (status == 'usable')
  console.log('HDCP 2.2 can be enforced.');

La API está disponible en todas las plataformas. Sin embargo, es posible que las verificaciones de políticas reales no estén disponibles en ciertas plataformas. Por ejemplo, la promesa de verificación de la política de HDCP se rechazará con NotSupportedError en Android y Android WebView.

Consulta nuestra documentación anterior para desarrolladores y prueba la muestra oficial para ver todas las versiones de HDCP compatibles.

Intent to Ship | Chromestatus Tracker | Error de Chromium

Prueba de origen para el modo de pantalla en pantalla automático para AWP instaladas

Es posible que algunas páginas deseen ingresar y salir automáticamente del modo de pantalla en pantalla para un elemento de video. Por ejemplo, las aplicaciones web de videoconferencia se beneficiarían de un comportamiento automático de pantalla en pantalla cuando el usuario cambia entre la aplicación web y otras aplicaciones o pestañas. Lamentablemente, esto no es posible con el requisito de gesto del usuario. Aquí viene la función Pantalla en pantalla automática.

Para admitir este cambio de pestaña y de app, se agrega un nuevo atributo autopictureinpicture al elemento <video>.

<video autopictureinpicture></video>

A continuación, te indicamos cómo funciona:

  • Cuando el documento se oculta, el elemento de video cuyo atributo autopictureinpicture se configuró más recientemente entra automáticamente en modo Picture-in-Picture, si está permitido.
  • Cuando el documento se vuelve visible, el elemento de video en pantalla en miniatura lo abandona automáticamente.

Eso es todo. Ten en cuenta que la función de pantalla en pantalla automática solo se aplica a las apps web progresivas que los usuarios instalaron en computadoras de escritorio.

Consulta las especificaciones para obtener más detalles y prueba el ejemplo oficial de la AWP.

Intent to Experiment | Chromestatus Tracker | Chromium Bug

Prueba de origen para omitir anuncios en la ventana de pantalla en pantalla

El modelo de anuncio de video suele constar de anuncios previos al video. Los proveedores de contenido a menudo ofrecen la posibilidad de omitir el anuncio después de unos segundos. Lamentablemente, como la ventana de pantalla en pantalla no es interactiva, los usuarios que miran un video de pantalla en pantalla no pueden hacer esto actualmente.

Ahora que la API de Media Session está disponible en computadoras (antes solo se admitía en dispositivos móviles), se puede usar una nueva acción de sesión multimedia skipad para ofrecer esta opción en Pantalla en pantalla.

Botón Omitir anuncio en la ventana de pantalla en pantalla
Botón “Omitir anuncio” en la ventana de Pantalla en pantalla

Para proporcionar esta función, pasa una función con skipad cuando llames a setActionHandler(). Para ocultarlo, pasa null. Como puedes leer a continuación, es bastante sencillo.

try {
  navigator.mediaSession.setActionHandler('skipad', null);
  showSkipAdButton();
} catch(error) {
    // The "Skip Ad" media session action is not supported.
}

function showSkipAdButton() {
  // The Picture-in-Picture window will show a "Skip Ad" button.
  navigator.mediaSession.setActionHandler('skipad', onSkipAdButtonClick);
}

function onSkipAdButtonClick() {
  // User clicked "Skip Ad" button, let's hide it now.
  navigator.mediaSession.setActionHandler('skipad', null);

  // TODO: Stop ad and play video.
}

Prueba el ejemplo oficial de "Omitir anuncio" y comunícate con nosotros para informarnos cómo se puede mejorar esta función.

Intención de experimentar | Seguimiento de Chromestatus | Error de Chromium

Se otorgó la reproducción automática para las AWP para computadoras

Ahora que las aplicaciones web progresivas están disponibles en todas las plataformas de computadoras de escritorio, estamos extendiendo la regla que teníamos en dispositivos móviles a las computadoras: ahora se permite la reproducción automática con sonido para las AWP instaladas. Ten en cuenta que solo se aplica a las páginas del alcance del manifiesto de la app web.

Error de Chromium