Spec-Zone.ru › Web APIs

MediaKeys

Базовая Широко поддерживается *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она поддерживается браузерами с марта 2019 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Подробнее
  • Полная совместимость
  • Отправить отзывы

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Интерфейс MediaKeys API расширений шифрования медиаданных представляет собой набор ключей, которые связанный HTMLMediaElement может использовать для дешифрования данных медиа во время воспроизведения.

Свойства экземпляра

Нет.

Методы экземпляра

MediaKeys.createSession()

Возвращает новый объект MediaKeySession, представляющий контекст для обмена сообщениями с модулем дешифрования контента (CDM).

MediaKeys.getStatusForPolicy()

Возвращает Promise, который разрешается в строку состояния, указывающую, разрешит ли CDM представление зашифрованных данных медиа с использованием ключей на основе заданных требований политики.

MediaKeys.setServerCertificate()

Возвращает Promise до сертификата сервера, который будет использоваться для шифрования сообщений серверу лицензирования.

Примеры

Проверка возможности использования ключей с ограничением HDCP

Этот пример демонстрирует, как getStatusForPolicy() можно использовать для проверки, могут ли ключи дешифровать определенный формат видео в настройках, имеющих минимальную версию HDCP 2.2. Для получения дополнительной информации см. документацию к методу MediaKeys: getStatusForPolicy().

HTML

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

JavaScript

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

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
MediaKeys 42 13 38 29 12.1 42 38 29 12.2 4.0 43
createSession 42 13 38 29 12.1 42 38 29 12.2 4.0 43
getStatusForPolicy 73 79 128 60 Нет 73 128 52 Нет 11.0 73
setServerCertificate 42 13 38 29 12.1 42 38 29 12.2 4.0 43

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/MediaKeys

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API