This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The MediaKeySession interface of the EncryptedMediaExtensions API represents a context for message exchange with a content decryption module (CDM).
Properties
MediaKeySession.closedRead only- Returns a
Promisesignaling when aMediaKeySessioncloses. This promise can only be fulfilled and is never rejected. Closing a session means that licenses and keys associated with it are no longer valid for decrypting media data. MediaKeySession.expirationRead only- The time after which the keys in the current session can no longer be used to decrypt media data, or
NaNif no such time exists. This value is determined by the CDM and measured in milliseconds since January 1, 1970, UTC. This value may change during a session lifetime, such as when an action triggers the start of a window. MediaKeySession.keyStatusesRead only- Contains a reference to a read-only
MediaKeyStatusMapof the current session's keys and their statuses. MediaKeySession.sessionIdRead only- Contains a unique string generated by the CDM for the current media object and its associated keys or licenses.
Event handlers
MediaKeySession.onkeystatuseschange- Sets the
EventHandlercalled when there has been a change in the keys in a session or their statuses. MediaKeySession.onmessage- Sets the
EventHandlercalled when the content decryption module has generated a message for the session.
Methods
MediaKeySession.close()-
Returns a
Promiseafter notifying the current media session is no longer needed and that the CDM should release any resources associated with this object and close it. MediaKeySession.generateRequest()- Returns a
Promiseafter generating a media request based on initialization data. MediaKeySession.load()- Returns a
Promisethat resolves to a boolean value after loading data for a specified session object. MediaKeySession.remove()- Returns a
Promiseafter removing any session data associated with the current object. MediaKeySession.update()- Returns a
Promiseafter loading messages and licenses to the CDM.
Examples
// TBD
Specifications
| Specification | Status | Comment |
|---|---|---|
| Encrypted Media Extensions The definition of 'MediaKeySession' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
MediaKeySession | Chrome Full support 42 | Edge Full support ≤18 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
close | Chrome Full support 42 | Edge Full support 13 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
closed | Chrome Full support 42 | Edge Full support 13 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
expiration | Chrome Full support 42 | Edge Full support 13 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
generateRequest | Chrome Full support 42 | Edge Full support 13 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
keyStatuses | Chrome Full support 42 | Edge Full support 13 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
load | Chrome Full support 42 | Edge Full support 13 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
onkeystatuseschange | Chrome Full support 55 | Edge Full support ≤79 | Firefox Full support Yes | IE ? | Opera Full support 42 | Safari ? | WebView Android Full support 43 | Chrome Android Full support 55 | Firefox Android Full support Yes | Opera Android Full support 42 | Safari iOS ? | Samsung Internet Android Full support 6.0 |
onmessage | Chrome Full support 55 | Edge Full support ≤79 | Firefox Full support Yes | IE ? | Opera Full support 42 | Safari ? | WebView Android Full support 43 | Chrome Android Full support 55 | Firefox Android Full support Yes | Opera Android Full support 42 | Safari iOS ? | Samsung Internet Android Full support 6.0 |
remove | Chrome Full support 42 | Edge Full support 13 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
sessionId | Chrome Full support 42 | Edge Full support 13 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
update | Chrome Full support 42 | Edge Full support 13 | Firefox Full support Yes | IE ? | Opera Full support Yes | Safari ? | WebView Android Full support 43 | Chrome Android Full support 42 | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS ? | Samsung Internet Android Full support 4.0 |
Legend
- Full support
- Full support
- Compatibility unknown
- Compatibility unknown
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
