Medienupdates in Chrome 73

François Beaufort
François Beaufort

In diesem Artikel geht es um die neuen Medienfunktionen von Chrome 73:

Unterstützung für Hardware-Medienschlüssel

Viele Tastaturen haben heutzutage Tasten zur Steuerung grundlegender Medienwiedergabefunktionen wie Wiedergabe/Pause sowie vorheriger und nächster Titel. Auch Headsets sind mit dabei. Bisher konnten Computernutzer diese Medientasten zur Steuerung der Audio- und Videowiedergabe in Chrome nicht verwenden. Das ändert sich heute.

Medientasten der Tastatur
Medientasten der Tastatur

Wenn der Nutzer die Pausetaste drückt, wird das aktive Medienelement, das in Chrome wiedergegeben wird, pausiert und empfängt ein pausiertes Medienereignis. Wenn die Wiedergabetaste gedrückt wird, wird das zuvor pausierte Medienelement fortgesetzt und empfängt ein Medienereignis „Wiedergabe“. Sie funktioniert unabhängig davon, ob Chrome im Vordergrund oder im Hintergrund ausgeführt wird.

In ChromeOS weisen Android-Apps, die Audiofokus verwenden, Chrome jetzt an, die Audiowiedergabe zu pausieren und fortzusetzen, um ein nahtloses Medienerlebnis zwischen Websites in Chrome, Chrome-Apps und Android-Apps zu schaffen. Dies wird derzeit nur auf ChromeOS-Geräten mit Android P unterstützt.

Kurz gesagt: Es empfiehlt sich, immer auf diese Medienereignisse zu warten und entsprechend zu handeln.

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

Das war noch nicht alles! Die Media Session API ist jetzt für Computer verfügbar (bisher wurde sie nur auf Mobilgeräten unterstützt). Damit können Webentwickler medienbezogene Ereignisse wie Titeländerungen verarbeiten, die durch Medienschlüssel ausgelöst werden. Derzeit werden die Ereignisse previoustrack und nexttrack unterstützt.

navigator.mediaSession.setActionHandler('previoustrack', function() {
  // User hit "Previous Track" key.
});

navigator.mediaSession.setActionHandler('nexttrack', function() {
  // User hit "Next Track" key.
});

Die Tasten für Wiedergabe und Pause werden von Chrome automatisch verwaltet. Sollte das Standardverhalten jedoch nicht funktionieren, können Sie dennoch einige Action-Handler für "play" (Wiedergabe) und "pause" (Pause) festlegen, um dies zu verhindern.

navigator.mediaSession.setActionHandler('play', function() {
  // User hit "Play" key.
});

navigator.mediaSession.setActionHandler('pause', function() {
  // User hit "Pause" key.
});

Unterstützung für Hardware-Medienschlüssel ist unter ChromeOS, macOS und Windows verfügbar. Linux wird später eingeführt.

Sieh dir unsere bestehende Entwicklerdokumentation an und probiere die offiziellen Media Session-Beispiele aus.

Chromestatus-Tracker | Chromium-Fehler

Verschlüsselte Medien: HDCP-Richtlinienprüfung

Dank der HDCP Policy Check API können Webentwickler jetzt abfragen, ob eine bestimmte Richtlinie, z.B. die HDCP-Anforderung, erzwungen werden kann, bevor Sie Wivine-Lizenzen anfordern und Medien laden.

const status = await video.mediaKeys.getStatusForPolicy({ minHdcpVersion: '2.2' });

if (status == 'usable')
  console.log('HDCP 2.2 can be enforced.');

Die API ist auf allen Plattformen verfügbar. Die eigentlichen Richtlinienprüfungen sind jedoch auf bestimmten Plattformen möglicherweise nicht verfügbar. Beispielsweise wird die HDCP-Richtlinienprüfung mit NotSupportedError unter Android und Android WebView abgelehnt.

Sehen Sie sich unsere frühere Entwicklerdokumentation an und probieren Sie das offizielle Beispiel aus, um alle unterstützten HDCP-Versionen zu sehen.

Intent to Ship | Chromestatus-Tracker | Chromium-Fehler

Ursprungstest für die automatische Bild-im-Bild-Funktion für installierte PWAs

Für einige Seiten kann es sinnvoll sein, für ein Videoelement automatisch Bild im Bild aufzurufen und zu belassen. Beispielsweise würden Webanwendungen für Videokonferenzen von einem automatischen Bild-im-Bild-Verhalten profitieren, wenn Nutzer zwischen der Web-App und anderen Anwendungen oder Tabs hin- und herwechseln. Das ist mit der Anforderung von Nutzergesten leider nicht möglich. Jetzt neu: der automatische Bild-im-Bild-Modus!

Damit der Wechsel zwischen Tabs und Apps möglich ist, wird dem Element <video> ein neues autopictureinpicture-Attribut hinzugefügt.

<video autopictureinpicture></video>

So funktioniert es ungefähr:

  • Wenn das Dokument ausgeblendet wird, wechselt das Videoelement, dessen autopictureinpicture-Attribut zuletzt festgelegt wurde, automatisch in den Bild-im-Bild-Modus, sofern dies zulässig ist.
  • Sobald das Dokument sichtbar wird, verlässt das Videoelement in der Funktion „Bild im Bild“ es automatisch.

Webseite. Die Funktion „Automatischer Bild im Bild“ gilt nur für Progressive Web-Apps, die Nutzer auf dem Computer installiert haben.

Weitere Informationen findest du spec. Du kannst auch das offizielle PWA-Beispiel ausprobieren.

Intent to Experiment | Chromestatus-Tracker | Chromium-Fehler

Ursprungstest für das Überspringen von Werbung im Bild-im-Bild-Fenster

Das Modell für Videoanzeigen besteht normalerweise aus Pre-Roll-Anzeigen. Contentanbieter bieten oft die Möglichkeit, die Anzeige nach einigen Sekunden zu überspringen. Da das Bild-im-Bild-Fenster nicht interaktiv ist, ist dies leider derzeit nicht möglich.

Da die Media Session API jetzt für Computer verfügbar ist (bisher wurde sie nur auf Mobilgeräten unterstützt), kann eine neue skipad-Mediensitzungsaktion verwendet werden, um diese Option für Bild im Bild anzubieten.

Schaltfläche „Anzeige überspringen“ im Bild-im-Bild-Fenster
Schaltfläche „Anzeige überspringen“ im Bild-im-Bild-Fenster

Um dieses Feature bereitzustellen, übergeben Sie beim Aufrufen von setActionHandler() eine Funktion mit skipad. Wenn Sie ihn ausblenden möchten, gehen Sie über null. Wie Sie unten lesen können, ist es ziemlich einfach.

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.
}

Probieren Sie das offizielle Beispiel für „Anzeige überspringen“ aus und teilen Sie uns mit, wie diese Funktion verbessert werden kann.

Intent to Experiment | Chromestatus-Tracker | Chromium-Fehler

Autoplay für Desktop-PWAs gewährt

Da Progressive Web-Apps jetzt auf allen Desktop-Plattformen verfügbar sind, erweitern wir die Regel für Mobilgeräte auf Desktop-Computer: Autoplay mit Ton ist jetzt auch für installierte PWAs zulässig. Sie gilt nur für Seiten im Bereich des Manifests der Web-App.

Chromium-Programmfehler