MediaKeys

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

BCD tables only load in the browser