Constructor
new EmeManager(player, videonon-null, videoSourcenon-null)
Creates the EME manager.
Parameters:
| Name | Type | Description |
|---|---|---|
player |
shaka.player.Player | The player instance. |
video |
HTMLVideoElement | The video element. |
videoSource |
shaka.player.IVideoSource | The video source. |
- Extends:
- Source:
Fires:
Members
-
(private, non-null) allSessionsPresumedReady_ :shaka.util.PublicPromise
-
Resolved when all sessions are probably ready. This is a heuristic, and is intended to support persisting licenses for offline playback.
Type:
- Source:
-
(private, nullable) allSessionsReadyTimer_ :number
-
Type:
- number
- Source:
-
(private) drmInfo_ :shaka.player.DrmInfo
-
Type:
- Source:
-
(private, non-null) eventManager_ :shaka.util.EventManager
-
Type:
- Source:
-
(private) licenseRequestTimeout_ :number
-
Type:
- number
- Source:
-
(private, non-null) listeners_ :shaka.util.MultiMap.<shaka.util.FakeEventTarget.ListenerType>
-
Type:
- Inherited From:
- Source:
-
(private) mediaKeys_ :MediaKeys
-
Type:
- MediaKeys
- Source:
-
(private) numUpdates_ :number
-
Type:
- number
- Source:
-
(protected) parent :shaka.util.FakeEventTarget
-
Type:
- Inherited From:
- Source:
-
(private) player_ :shaka.player.Player
-
Type:
- Source:
-
(private, non-null) requestGenerated_ :Array.<{data: !Uint8Array, session: !MediaKeySession}>
-
Type:
- Array.<{data: !Uint8Array, session: !MediaKeySession}>
- Source:
-
(private, non-null) sessions_ :Array.<!MediaKeySession>
-
Type:
- Array.<!MediaKeySession>
- Source:
-
(private, non-null) video_ :HTMLVideoElement
-
Type:
- HTMLVideoElement
- Source:
-
(private, non-null) videoSource_ :shaka.player.IVideoSource
-
Type:
- Source:
Methods
-
addEventListener(type, listener, opt_capturingopt)
-
Add an event listener to this object.
Parameters:
Name Type Attributes Description typestring The event type to listen for. listenershaka.util.FakeEventTarget.ListenerType The callback or listener object to invoke. opt_capturingboolean <optional>
True to listen during the capturing phase, false to listen during the bubbling phase. Note that FakeEventTarget does not support the capturing phase from the standard event model. - Inherited From:
- Source:
-
allSessionsReady(timeoutMs) → (non-null) {Promise}
-
Parameters:
Name Type Description timeoutMsnumber A timeout in ms after which the promise should be rejected. - Source:
Returns:
resolved when all sessions are presumed ready.- Type
- Promise
-
(private) buildKeySystemPromiseChain_(mediaKeySystemConfigsnon-null, pnon-null) → (non-null) {Promise.<!MediaKeySystemAccess>}
-
Build a promise chain to check each MediaKey configuration. If the first config fails, the next will be checked as a series of fallbacks.
Parameters:
Name Type Description mediaKeySystemConfigsObject.<string, !MediaKeySystemConfiguration> MediaKeySystemConfiguration} Key system configs, indexed by key system. pPromise The beginning of the promise chain, which should be rejected to start the series of fallback queries. - Source:
Returns:
- Type
- Promise.<!MediaKeySystemAccess>
-
(private) buildKeySystemQueries_(configsnon-null, chosenStreamsnon-null) → (non-null) {Object.<string, !MediaKeySystemConfiguration>}
-
Build a set of MediaKeySystemConfigs to query for encrypted stream support.
Parameters:
Name Type Description configsArray.<!shaka.media.StreamConfig> A list of configurations supported by the video source. chosenStreamsshaka.util.MultiMap.<!shaka.media.StreamConfig> Chosen streams indexed by content type. - Source:
Throws:
-
if DrmInfo is missing.
- Type
- Error
Returns:
Key system configs, indexed by key system.- Type
- Object.<string, !MediaKeySystemConfiguration>
-
(private) chooseEncrypted_(configsnon-null, chosenStreamsnon-null, mediaKeySystemAccessnon-null) → (non-null) {Promise.<!MediaKeys>}
-
When a key system query succeeds, chooses encrypted streams which match the chosen MediaKeySystemConfiguration, then creates a MediaKeys instance.
Parameters:
Name Type Description configsArray.<!shaka.media.StreamConfig> A list of configurations supported by the video source. chosenStreamsshaka.util.MultiMap.<!shaka.media.StreamConfig> Chosen streams indexed by content type. mediaKeySystemAccessMediaKeySystemAccess - Source:
Returns:
- Type
- Promise.<!MediaKeys>
-
(private) chooseUnencrypted_(configsnon-null, chosenStreamsnon-null)
-
Choose unencrypted streams for each type if possible. Store chosen streams into chosenStreams.
Parameters:
Name Type Description configsArray.<!shaka.media.StreamConfig> A list of configurations supported by the video source. chosenStreamsshaka.util.MultiMap.<!shaka.media.StreamConfig> Chosen streams indexed by content type. - Source:
-
(private) createLicenseRequestInfo_(drmInfonon-null, licenseRequestBodynon-null) → (non-null) {shaka.player.DrmInfo.LicenseRequestInfo}
-
Creates a LicenseRequestInfo object, potentially calling a licenese request pre-processor.
Parameters:
Name Type Description drmInfoshaka.player.DrmInfo licenseRequestBodyArrayBuffer - Source:
Throws:
-
TypeError if the application sets a LicenseRequestInfo field to the wrong type.
-
Error if the application deletes a LicenseRequestInfo field or sets the |method| field of a LicenseRequestInfo object to something other than 'GET' or 'POST'.
Returns:
A LicenseRequestInfo object whose fields have correct types. -
(private) createMediaKeySystemConfig_(drmInfonon-null) → (non-null) {MediaKeySystemConfiguration}
-
Creates a MediaKeySystemConfiguration from the given DrmInfo.
Parameters:
Name Type Description drmInfoshaka.player.DrmInfo - Source:
Returns:
- Type
- MediaKeySystemConfiguration
-
(private) createSession_() → {MediaKeySession}
-
Creates a new MediaKeySession.
- Source:
Returns:
- Type
- MediaKeySession
-
deleteSessions() → (non-null) {Promise}
-
Deletes all sessions from persistent storage.
- Source:
Returns:
- Type
- Promise
-
destroy()
-
Destroys the EME manager.
- Source:
-
dispatchEvent(eventnon-null) → {boolean}
-
Dispatch an event from this object.
Parameters:
Name Type Description eventEvent The event to be dispatched from this object. - Inherited From:
- Source:
Returns:
True if the default action was prevented.- Type
- boolean
-
(private) generateFakeEncryptedEvents_()
-
Generate and dispatch any fake 'encrypted' events for |drmInfo_|.
- Source:
-
getDrmInfo() → {shaka.player.DrmInfo}
-
Returns the current DrmInfo.
- Source:
Returns:
- Type
- shaka.player.DrmInfo
-
initialize() → (non-null) {Promise}
-
Initializes the DrmInfo by choosing from stream configurations provided by the video source. This function sets |mediaKeys_| and |drmInfo_|.
- Source:
Returns:
- Type
- Promise
-
(private) loadSessions_()
-
Loads persistent sessions via sessionId saved within videoSource.
- Source:
-
(private) onEncrypted_(eventnon-null)
-
EME 'encrypted' event handler.
Parameters:
Name Type Description eventMediaEncryptedEvent The EME 'encrypted' event. - Source:
-
(private) onKeyStatusesChange_(eventnon-null)
-
EME status-change handler.
Parameters:
Name Type Description eventEvent - Source:
-
(private) onSessionMessage_(eventnon-null)
-
EME key-message handler.
Parameters:
Name Type Description eventMediaKeyMessageEvent The EME message event. - Source:
-
(private) playReadyLicensePreProcessor_(infonon-null)
-
Standard pre-processor for PlayReady license requests.
Parameters:
Name Type Description infoshaka.player.DrmInfo.LicenseRequestInfo License request info. - Source:
-
(private) recursiveDispatch_(eventnon-null) → {boolean}
-
Dispatches an event recursively without changing its original target.
Parameters:
Name Type Description eventEvent - Inherited From:
- Source:
Returns:
True if the default action was prevented.- Type
- boolean
-
(private) rejectDestroyed_() → (non-null) {Promise}
-
- Source:
Returns:
- Type
- Promise
-
removeEventListener(type, listener, opt_capturingopt)
-
Remove an event listener from this object.
Parameters:
Name Type Attributes Description typestring The event type for which you wish to remove a listener. listenershaka.util.FakeEventTarget.ListenerType The callback or listener object to remove. opt_capturingboolean <optional>
True to remove a listener for the capturing phase, false to remove a listener for the bubbling phase. Note that FakeEventTarget does not support the capturing phase from the standard event model. - Inherited From:
- Source:
-
(private) requestLicense_(sessionnon-null, drmInfonon-null, licenseRequestBodynon-null)
-
Requests a license.
Parameters:
Name Type Description sessionMediaKeySession An EME session object. drmInfoshaka.player.DrmInfo licenseRequestBodyArrayBuffer The license request's body. - Source:
Throws:
-
TypeError
-
Error
-
setLicenseRequestTimeout(timeout)
-
Sets the license request timeout in seconds.
Parameters:
Name Type Description timeoutnumber The license request timeout in seconds. - Source:
-
(private) setupMediaKeys_(mediaKeysnon-null) → (non-null) {Promise}
-
Sets up MediaKeys after it has been created. The MediaKeys instance will be attached to the video, any fake events will be generated, and any event listeners will be attached to the video.
Parameters:
Name Type Description mediaKeysMediaKeys - Source:
Returns:
- Type
- Promise
Events
-
SessionReadyEvent
-
Fired when a new MediaKeySession is ready.
Properties:
Name Type Description typestring 'sessionReady' detailMediaKeySession - Source: