Audio-/video-updates in Chrome 61

François Beaufort
François Beaufort

Optimalisaties van achtergrondvideotracks (alleen MSE)

Om de levensduur van de batterij te verbeteren, schakelt Chrome nu videotracks uit wanneer de video op de achtergrond wordt afgespeeld (bijvoorbeeld op een niet-zichtbaar tabblad) als de video Media Source Extensions (MSE) gebruikt.

U kunt deze wijzigingen bekijken door naar de chrome://media-internals pagina te gaan en te filteren op de eigenschap 'info'. Wanneer het tabblad met een afgespeelde video inactief wordt, ziet u een bericht als Selected video track: [] wat aangeeft dat de videotrack is uitgeschakeld. Wanneer het tabblad weer actief wordt, wordt de videotrack automatisch opnieuw ingeschakeld.

Logpaneel op de chrome://media-internals-pagina
Figuur 1. Logpaneel op de chrome://media-internals- pagina

Voor degenen die willen begrijpen wat er gebeurt, is hier een JavaScript-codefragment dat laat zien wat Chrome ongeveer achter de schermen doet.

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

Mogelijk wilt u de kwaliteit van de videostream verminderen wanneer de videotrack is uitgeschakeld. Het zou zo simpel zijn als het gebruik van de Page Visibility API , zoals hierboven weergegeven, om te detecteren wanneer een pagina verborgen is.

En hier zijn enkele beperkingen:

  • Deze optimalisatie is alleen van toepassing op video's met een keyframe- afstand < 5s.
  • Als de video geen audiotracks bevat, wordt de video automatisch gepauzeerd wanneer deze op de achtergrond wordt afgespeeld.

Chroombug

Automatische video op volledig scherm wanneer het apparaat wordt gedraaid

Als u een apparaat naar liggend draait terwijl een video in de viewport wordt afgespeeld, wordt het afspelen automatisch overgeschakeld naar de modus Volledig scherm. Als u het apparaat naar portret draait, wordt de video teruggezet naar de venstermodus.

Houd er rekening mee dat u dit gedrag zelf handmatig kunt implementeren. (Zie het artikel Mobiel webvideo afspelen ).

Automatische video op volledig scherm wanneer het apparaat wordt gedraaid
Figuur 2. Automatische video op volledig scherm wanneer het apparaat wordt gedraaid

Dit magische gedrag gebeurt alleen wanneer:

  • apparaat is een Android-telefoon (geen tablet)
  • de schermoriëntatie van de gebruiker is ingesteld op "Automatisch draaien"
  • videoformaat is minimaal 200x200px
  • video maakt gebruik van native bedieningselementen
  • video wordt momenteel afgespeeld
  • minimaal 75% van de video is zichtbaar (op het scherm)
  • oriëntatie draait 90 graden (niet 180 graden)
  • er is nog geen volledig schermelement
  • het scherm is niet vergrendeld met behulp van de Screen Orientation API

Chroombug