Aggiornamenti audio/video in Chrome 61

François Beaufort
François Beaufort

Ottimizzazioni della traccia video in background (solo MSE)

Per migliorare la durata della batteria, Chrome ora disattiva le tracce video quando il video viene riprodotto in background (ad es. in una scheda non visibile) se il video utilizza le estensioni Media Source (MSE).

Puoi esaminare queste modifiche andando alla pagina chrome://media-internals e filtrare in base alla proprietà "info". Quando la scheda contenente un video in riproduzione diventa inattiva, viene visualizzato un messaggio come Selected video track: [] che indica che la traccia video è stata disattivata. Quando la scheda torna attiva, la traccia video viene riattivata automaticamente.

Pannello dei log nella pagina chrome://media-internals
Figura 1. Pannello dei log nella pagina chrome://media-internals

Per chi vuole capire cosa sta succedendo, ecco un frammento di codice JavaScript che mostra cosa fa approssimativamente Chrome dietro le quinte.

    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;
      }
    });

Potresti voler ridurre la qualità dello stream video quando la traccia video è disattivata. Basterà utilizzare l'API Page Visibility come mostrato sopra per rilevare quando una pagina è nascosta.

Ecco alcune limitazioni:

  • Questa ottimizzazione si applica solo ai video con una distanza tra i keyframe inferiore a 5 secondi.
  • Se il video non contiene tracce audio, verrà automaticamente messo in pausa durante la riproduzione in background.

Bug di Chromium

Video automatico a schermo intero quando il dispositivo viene ruotato

Se ruoti un dispositivo in orizzontale mentre un video viene riprodotto nell'area visibile, la riproduzione passerà automaticamente alla modalità a schermo intero. Se ruoti il dispositivo in verticale, il video torna in modalità finestra.

Tieni presente che puoi implementare manualmente questo comportamento. (vedi l'articolo Riproduzione di video sul web mobile).

Video automatico a schermo intero quando il dispositivo viene ruotato
Figura 2. Video automatico a schermo intero quando il dispositivo viene ruotato

Questo comportamento magico si verifica solo quando:

  • Il dispositivo è uno smartphone Android (non un tablet)
  • L'orientamento dello schermo dell'utente è impostato su "Rotazione automatica".
  • Le dimensioni del video sono almeno 200 x 200 px
  • il video utilizza i controlli nativi
  • video attualmente in riproduzione
  • Almeno il 75% del video è visibile (sullo schermo)
  • l'orientamento ruota di 90 gradi (non di 180 gradi)
  • non è ancora presente alcun elemento a schermo intero
  • lo schermo non è bloccato tramite l'API Screen Orientation

Bug di Chromium