MediaKeys
Baseline 廣泛可用 *
MediaKeys 介面屬於加密媒體擴充套件 API(Encrypted Media Extensions API),代表了一組金鑰,相關聯的 HTMLMediaElement 可以在播放期間使用這些金鑰來解密媒體資料。
例項屬性
無。
例項方法
MediaKeys.createSession()-
返回一個新的
MediaKeySession物件,它代表了與內容解密模組 (CDM) 進行訊息交換的上下文。 MediaKeys.getStatusForPolicy()-
返回一個
Promise,該 Promise 解析為一個狀態字串,指示 CDM 是否會根據指定的策略要求允許使用這些金鑰播放加密媒體資料。 MediaKeys.setServerCertificate()-
返回一個
Promise,其值是一個用於加密發往許可證伺服器的訊息的伺服器證書。
示例
檢查金鑰是否可用於 HDCP 限制
此示例展示瞭如何使用 getStatusForPolicy() 來檢查金鑰是否能夠在 HDCP 版本最低要求為 2.2 的設定中解密特定的影片格式。有關更多資訊,請參閱 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);
}
}
結果
規範
| 規範 |
|---|
| 加密媒體擴充套件 # mediakeys-interface |
瀏覽器相容性
載入中…