Audio-/video-updates in Chrome 61

François Beaufort
François Beaufort

Optimalisatie van achtergrondvideotracks (alleen MSE)

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

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

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

Voor degenen die willen begrijpen wat er gebeurt, volgt 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 verlagen wanneer de videotrack is uitgeschakeld. Dit kan heel eenvoudig door de Page Visibility API te gebruiken, 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 keyframeafstand < 5s.
  • Als de video geen audiotracks bevat, wordt de video automatisch gepauzeerd wanneer deze op de achtergrond wordt afgespeeld.

Chroombug

Automatische videoweergave op volledig scherm wanneer het apparaat wordt gedraaid

Als u een apparaat naar de liggende stand draait terwijl er een video in de viewport wordt afgespeeld, schakelt de weergave automatisch over naar de volledig schermmodus. Als u het apparaat naar de staande stand draait, keert de video terug naar de venstermodus.

U kunt dit gedrag ook handmatig zelf implementeren. (Zie het artikel over het afspelen van video via mobiel internet ).

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

Dit magische gedrag treedt alleen op 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 scherm-element
  • scherm is niet vergrendeld met behulp van de Screen Orientation API

Chroombug