Widely available すべての主要ブラウザで対応済み。安心して使用可能。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
42
13
38
12.1
42
12.2

encrypted`イベントは、初期化データがメディアから見つかり、暗号化されていることを示しているときに発行されます。

42
13
38
12.1
42
12.2

HTMLMediaElement.mediaKeys プロパティは MediaKeys オブジェクトを返します。要素が再生中にメディアデータを復号するために使用することができる一連のキーです。

42
13
38
12.1
42
12.2

setMediaKeys() は HTMLMediaElement インターフェイスのメソッドで、再生中にメディアの暗号を解除するために使用される MediaKeys を設定します。

42
13
38
12.1
42
12.2

waitingforkey イベントは、メディア要素が次のデータをデコードするためにキーが必要であり、最初の再生が不可能になったときに発行され、再生が停止されます。

55
79
133
12.1
55
12.2

暗号化されたメディアのキーシステム構成を指定するオブジェクトです。

80
80
129
80

MediaKeyMessageEventの読み取り専用のinitDataプロパティは、このイベントに含まれる初期化データがあれば、それを返す。

42
13
38
12.1
42
12.2

MediaKeyMessageEventの読み取り専用のinitDataTypeプロパティは、大文字と小文字を区別して、このイベントに関連付けられた初期化データのタイプを表す文字列を返す。

42
13
38
12.1
42
12.2

MediaEncryptedEventコンストラクタは、新しいMediaEncryptedEventオブジェクトを生成する。

42
13
38
12.1
42
12.2

Encrypted Media Extensions API の MediaKeyMessageEvent インターフェイスには、コンテンツ復号化モジュールがセッションのメッセージを生成するときに、コンテンツと関連データが含まれます。

42
13
38
12.1
42
12.2

MediaKeyMessageEvent コンストラクターは、新しい MediaKeyMessageEvent オブジェクトを作成します。

42
13
38
12.1
42
12.2

MediaKeyMessageEvent.message 読み取り専用プロパティは、コンテンツ復号化モジュールからのメッセージを含む ArrayBuffer を返します。 メッセージはキー システムによって異なります。

42
13
38
12.1
42
12.2

MediaKeyMessageEvent.messageType 読み取り専用プロパティは、メッセージの種類を示します。 それは、ライセンス要求、ライセンス更新、ライセンス解放、または個別化要求のいずれかです。

42
13
38
12.1
42
12.2

Encrypted Media Extensions API の MediaKeys インターフェイスは、関連付けられた HTMLMediaElement が再生中にメディア データの復号化に使用できるキーのセットを表します。

42
13
38
12.1
42
12.2

MediaKeys インターフェイスの createSession() メソッドは、コンテンツ復号化モジュール (CDM) とのメッセージ交換のコンテキストを表す新しい MediaKeySession オブジェクトを返します。

42
13
38
12.1
42
12.2

MediaKeys インターフェイスの getStatusForPolicy() メソッドは、指定されたポリシー要件に基づいて、コンテンツ復号化モジュール (CDM) がキーを使用した暗号化されたメディア データの表示を許可するかどうかを確認するために使用されます。

73
79
128
73

MediaKeys インターフェイスの setServerCertificate() メソッドは、メッセージを暗号化するために使用されるサーバー証明書をライセンス サーバーに提供します。

42
13
38
12.1
42
12.2

Encrypted Media Extensions API の MediaKeySession インターフェイスは、コンテンツ復号化モジュール (CDM) とのメッセージ交換のコンテキストを表します。

42
13
38
12.1
42
12.2

MediaKeySession インターフェイスの close() メソッドは、現在のメディア セッションが不要になったこと、およびコンテンツ復号化モジュールがこのオブジェクトに関連付けられたリソースを解放して閉じる必要があることを通知します。 次に、Promise を返します。

42
13
38
12.1
42
12.2

MediaKeySession インターフェイスの閉じられた読み取り専用プロパティは、MediaKeySession が閉じるときに Promise シグナルを返します。 この約束は果たせるだけであり、拒否されることはありません。 セッションを閉じるということは、セッションに関連付けられているライセンスとキーがメディア データの復号化に有効でなくなることを意味します。

42
13
38
12.1
42
12.2

MediaKeySession インターフェイスの有効期限読み取り専用プロパティは、現在のセッションのキーをメディア データの復号化に使用できなくなるまでの時間を返します。そのような時間が存在しない場合は NaN を返します。

42
13
38
12.1
42
12.2

MediaKeySession インターフェイスのgenerateRequest() メソッドは、初期化データに基づいてライセンス要求を生成した後、Promise を返します。

42
13
38
12.1
42
12.2

MediaKeySession インターフェイスの keyStatuses 読み取り専用プロパティは、現在のセッションのキーとそのステータスの読み取り専用 MediaKeyStatusMap への参照を返します。

42
13
38
12.1
42
12.2

MediaKeySession API の keystatuseschange イベントは、セッション内でキーまたはそのステータスに変更があったときに発生します。

55
79
52
12.1
55
12.2

MediaKeySession インターフェイスのload() メソッドは、指定されたセッション オブジェクトのデータをロードした後、ブール値に解決される Promise を返します。

42
13
38
12.1
42
12.2

MediaKeySession インターフェイスのメッセージ イベントは、コンテンツ復号化モジュールによってメッセージが生成されるときに発生します。

55
79
52
12.1
55
12.2

MediaKeySession インターフェイスのremove() メソッドは、現在のオブジェクトに関連付けられたセッション データを削除した後、Promise を返します。

42
13
38
12.1
42
12.2

MediaKeySession インターフェイスの sessionId 読み取り専用プロパティには、現在のメディア オブジェクトとそれに関連付けられたキーまたはライセンスに対してコンテンツ復号化モジュール (CDM) によって生成された一意の文字列が含まれています。

42
13
38
12.1
42
12.2

MediaKeySession インターフェイスの update() メソッドは、メッセージとライセンスを CDM にロードし、Promise を返します。

42
13
38
12.1
42
12.2

Encrypted Media Extensions API の MediaKeyStatusMap インターフェイスは、キー ID ごとのメディア キー ステータスの読み取り専用マップです。

42
13
38
12.1
42
12.2
@@iterator

[シンボル.イテレータ]

42
16
45
12.1
42
12.2

MediaKeyStatusMapインタフェースのentries()メソッドは、ステータス マップ内の各要素に対す る、挿入順で、[key, value]ペアの配列を含む新しいIteratorオブジェクトを返します。

42
16
38
12.1
42
12.2

MediaKeyStatusMapインタフェースのforEach()メソッドは、ステータス・マップ内の各キーと値のペアに対して、挿入順にコールバックを1回呼び出す。引数がある場合は、それがコールバックに渡される。

42
13
47
12.1
42
12.2

MediaKeyStatusMap インターフェイスの get() メソッドは、指定されたキーに関連付けられたステータス値を返します。ステータス値がない場合は、未定義を返します。

42
13
45
12.1
42
12.2

MediaKeyStatusMap インターフェイスの has() メソッドは、値が指定されたキーに関連付けられているかどうかをアサートするブール値を返します。

42
13
45
12.1
42
12.2

MediaKeyStatusMapインタフェースのkeys()メソッドは、ステータス・マップの各要素のキーを含む新しいイテレータ・オブジェクトを挿入順に返す。

42
16
38
12.1
42
12.2

MediaKeyStatusMap インターフェイスの size 読み取り専用プロパティは、ステータス マップ内のキーと値のペアの数を返します。

42
13
38
12.1
42
12.2

MediaKeyStatusMapインタフェースのvalues()メソッドは、ステータス・マップの各要素の値を 挿入順に含む新しいIteratorオブジェクトを返します。

42
16
38
12.1
42
12.2

Encrypted Media Extensions API の MediaKeySystemAccess インターフェイスは、復号化のためのキー システムやコンテンツ保護プロバイダーへのアクセスを提供します。 Navigator.requestMediaKeySystemAccess メソッドを使用して、このオブジェクトのインスタンスをリクエストできます。

42
13
38
12.1
42
12.2

MediaKeySystemAccess.createMediaKeys() メソッドは、新しい MediaKeys オブジェクトに解決される Promise を返します。

42
13
38
12.1
42
12.2

MediaKeySystemAccess インターフェイスの getConfiguration() メソッドは、次の構成オプションのサポートされている組み合わせを含むオブジェクトを返します。

42
13
43
12.1
42
12.2

MediaKeySystemAccess インターフェイスの keySystem 読み取り専用プロパティは、使用されているキー システムを識別する文字列を返します。

42
13
38
12.1
42
12.2

Navigator インターフェイスの requestMediaKeySystemAccess() メソッドは、特定のメディア キー システムへのアクセスに使用できる MediaKeySystemAccess オブジェクトを渡す Promise を返します。このオブジェクトは、メディア ストリームを復号化するためのキーの作成に使用できます。

42
13
38
12.1
42
12.2
その他
html.elements.iframe.allow.encrypted-media
64
79
74
64

HTTP の Permissions-Policy ヘッダーにおける encrypted-media ディレクティブは、現在の文書が Encrypted Media Extensions API (EME) を使用することを許可するかどうかを制御します。

88
88
88
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 3件
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (133)
実装メモ
  • onwaitingforkey`イベントハンドラプロパティはサポートされていません。
注釈 3件
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (55)
実装メモ
  • onkeystatuseschange`イベントハンドラプロパティはサポートされていません。
注釈 3件
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (55)
実装メモ
  • onkeystatuseschange`イベントハンドラプロパティはサポートされていません。
注釈 3件
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (55)
実装メモ
  • onmessage`イベントハンドラプロパティはサポートされていません。
注釈 3件
制限事項
  • このブラウザでは部分的にしか実装されていません
削除済み
  • このバージョンで機能が削除されました (55)
実装メモ
  • onmessage`イベントハンドラプロパティはサポートされていません。
注釈 1件
実装メモ
  • Firefox 50 より前のバージョンでは、返されるオブジェクトには `distinctiveIdentifier` プロパティも `persistentState` プロパティもありません。
注釈 2件
実装メモ
  • この仕様では、渡された `supportedConfigurations` オプションが `audioCapabilities` または `videoCapabilities` の少なくとも1つを含み、そのパラメータがコーデック文字列を含むことを要求している。
  • この関数は安全でないコンテキストには存在しません。これは Chrome 58 までは強制されていませんでした。
注釈 3件
実装メモ
  • Firefox 55 から、`supportedConfigurations` に `audioCapabilities` と `videoCapabilities` のどちらも指定されていない場合、Web コンソールに警告が出力されるようになった。
  • 将来的には、`supportedConfigurations` に `audioCapabilities` と `videoCapabilities` のどちらも指定されていない場合は、`NotSupported` 例外がスローされるようになる。
制限事項
  • また、Firefox 55 以降では、`supportedConfigurations` の `audioCapabilities` または `videoCapabilities` の `contentType` 値に、メディアラッパー内で許可されるコーデックを定義するための `"codecs"` 部分文字列が指定されていない場合、Web コンソールに警告が出力されます。例と修正については、表の下のメモを参照してください。
注釈 2件
実装メモ
  • この仕様では、渡された `supportedConfigurations` オプションが `audioCapabilities` または `videoCapabilities` の少なくとも1つを含み、そのパラメータがコーデック文字列を含むことを要求している。
  • この関数は安全でないコンテキストには存在しません。これはChrome Android 58まで強制されなかった。

基本構文

JAVASCRIPT
const config = [{
  initDataTypes: ['cenc'],
  videoCapabilities: [{ contentType: 'video/mp4; codecs="avc1.42E01E"' }]
}];
const access = await navigator.requestMediaKeySystemAccess('com.widevine.alpha', config);
const keys = await access.createMediaKeys();

実務での使いどころ

  • Encrypted media extensions の活用

    encrypted`イベントは、初期化データがメディアから見つかり、暗号化されていることを示しているときに発行されます。

注意点

  • 古いブラウザでは対応していない場合がある。

アクセシビリティ

  • スクリーンリーダーでの読み上げを確認すること。