Actualizaciones multimedia en Chrome 73

François Beaufort
François Beaufort

En este artículo, analizaré las nuevas funciones multimedia de Chrome 73, que incluyen las siguientes:

Compatibilidad con teclas multimedia de hardware

Hoy en día, muchos teclados tienen teclas para controlar funciones básicas de reproducción multimedia, como reproducir y pausar, pista anterior y pista 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 cambiará hoy.

Teclas multimedia del teclado
Teclas multimedia del teclado

Si el usuario presiona la tecla de pausa, se detendrá el elemento multimedia activo que se reproduce en Chrome 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 el enfoque de audio ahora le indicarán a Chrome que pause y reanude el audio para crear una experiencia multimedia fluida entre los sitios web en Chrome, las apps para Chrome y las apps para Android. Por el momento, solo es compatible con dispositivos ChromeOS que ejecutan Android P.

En resumen, es recomendable escuchar siempre estos eventos multimedia y actuar según corresponda.

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 las muestras 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 para desarrolladores anterior y prueba el ejemplo 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. Así que, ¡aquí está la 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 hace 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 la especificación 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 en pantalla en pantalla no pueden hacerlo en la actualidad.

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.

Intent to Experiment | Chromestatus Tracker | Chromium Bug

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