MediaKeys

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2019.

* Some parts of this feature may have varying levels of support.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die MediaKeys-Schnittstelle der Encrypted Media Extensions API repräsentiert einen Satz von Schlüsseln, die ein zugeordnetes HTMLMediaElement zur Entschlüsselung von Mediendaten während der Wiedergabe verwenden kann.

Instanzeigenschaften

Keine.

Instanzmethoden

MediaKeys.createSession()

Gibt ein neues MediaKeySession-Objekt zurück, das einen Kontext für den Nachrichtenaustausch mit einem Content-Decryption-Modul (CDM) darstellt.

MediaKeys.getStatusForPolicy()

Gibt ein Promise zurück, das zu einem Status-String auflöst, der anzeigt, ob das CDM die Präsentation von verschlüsselten Mediendaten mit den Schlüsseln unter Berücksichtigung der angegebenen Richtlinienanforderungen zulässt.

MediaKeys.setServerCertificate()

Gibt ein Promise auf ein Serverzertifikat zurück, das zur Verschlüsselung von Nachrichten an den Lizenzserver verwendet werden soll.

Beispiele

Überprüfen, ob Schlüssel mit HDCP-Einschränkung verwendbar sind

Dieses Beispiel zeigt, wie getStatusForPolicy() verwendet werden kann, um zu überprüfen, ob Schlüssel ein bestimmtes Videoformat in einer Konfiguration entschlüsseln können, die eine minimale HDCP-Version von 2.2 erfordert. Weitere Informationen finden Sie in der Dokumentation zur Methode MediaKeys: getStatusForPolicy().

HTML

html
<pre id="log"></pre>

JavaScript

js
const config = [
  {
    videoCapabilities: [
      {
        contentType: 'video/mp4; codecs="avc1.640028"',
        encryptionScheme: "cenc",
        robustness: "SW_SECURE_DECODE", // Widevine L3
      },
    ],
  },
];

getMediaStatus(config);

async function getMediaStatus(config) {
  try {
    const mediaKeySystemAccess = await navigator.requestMediaKeySystemAccess(
      "com.widevine.alpha",
      config,
    );
    const mediaKeys = await mediaKeySystemAccess.createMediaKeys();
    const mediaStatus = await mediaKeys.getStatusForPolicy({
      minHdcpVersion: "2.2",
    });
    log(mediaStatus);

    // Get the content or fallback to an alternative if the
    // keys are not usable
    if (mediaStatus === "usable") {
      console.log("HDCP 2.2 can be enforced.");
      // Fetch the high resolution protected content
    } else {
      log("HDCP 2.2 cannot be enforced");
      // Fallback other content, get license, etc.
    }
  } catch (error) {
    log(error);
  }
}

Ergebnisse

Spezifikationen

Specification
Encrypted Media Extensions
# mediakeys-interface

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
MediaKeys
createSession
getStatusForPolicy
setServerCertificate

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support