Actualizaciones de audio y video en Chrome 61

François Beaufort
François Beaufort

Optimizaciones de pistas de video en segundo plano (solo MSE)

Para mejorar la duración de la batería, Chrome ahora inhabilita las pistas de video cuando se reproduce un video en segundo plano (p.ej., en una pestaña no visible) si el video usa extensiones de Media Source (MSE).

Para inspeccionar estos cambios, ve a la página chrome://media-internals y filtra por la propiedad "info". Cuando la pestaña que contiene un video en reproducción se vuelve inactiva, verás un mensaje como Selected video track: [] que indica que se inhabilitó la pista de video. Cuando la pestaña vuelve a estar activa, se vuelve a habilitar automáticamente la pista de video.

Panel de registros en la página chrome://media-internals
Figura 1. Panel de registro en la página chrome://media-internals

Para quienes quieran comprender lo que sucede, aquí hay un fragmento de código JavaScript que muestra lo que Chrome hace aproximadamente en segundo plano.

    var video = document.querySelector('video');
    var selectedVideoTrackIndex;

    document.addEventListener('visibilitychange', function() {
      if (document.hidden) {
        // Disable video track when page is hidden.
        selectedVideoTrackIndex = video.videoTracks.selectedIndex;
        video.videoTracks[selectedVideoTrackIndex].selected = false;
      } else {
        // Re-enable video track when page is not hidden anymore.
        video.videoTracks[selectedVideoTrackIndex].selected = true;
      }
    });

Es posible que desees reducir la calidad del flujo de video cuando la pista de video esté inhabilitada. Sería tan simple como usar la API de Page Visibility, como se muestra arriba, para detectar cuándo se oculta una página.

Estas son algunas restricciones:

  • Esta optimización solo se aplica a los videos con una distancia entre fotogramas clave inferior a 5 s.
  • Si el video no contiene pistas de audio, se pausará automáticamente cuando se reproduzca en segundo plano.

Error de Chromium

Pantalla completa automática de video cuando se rota el dispositivo

Si rotas un dispositivo al modo horizontal mientras se reproduce un video en el viewport, la reproducción cambiará automáticamente al modo de pantalla completa. Si rotas el dispositivo a la posición vertical, el video vuelve al modo de ventana.

Ten en cuenta que puedes implementar este comportamiento de forma manual. (Consulta el artículo Reproducción de video en la Web para dispositivos móviles).

Pantalla completa automática de video cuando se rota el dispositivo
Figura 2: Video automático en pantalla completa cuando se rota el dispositivo

Este comportamiento mágico solo ocurre en los siguientes casos:

  • El dispositivo es un teléfono Android (no una tablet).
  • La orientación de la pantalla del usuario está configurada como "Rotación automática".
  • El tamaño del video es de al menos 200 × 200 px.
  • El video usa controles nativos.
  • Actualmente se está reproduciendo el video
  • Al menos el 75% del video es visible (en pantalla).
  • La orientación rota 90 grados (no 180 grados).
  • Aún no hay un elemento de pantalla completa.
  • La pantalla no está bloqueada con la API de Screen Orientation.

Error de Chromium