Provides access to media protection information and functionality. Each
ProtectionController manages a single MediaPlayer.models.ProtectionModel
which encapsulates a set of protection information (EME APIs, selected key system,
key sessions). The APIs of ProtectionController mostly align with the latest EME
APIs. Key system selection is mostly automated when combined with app-overrideable
functionality provided in ProtectionKeyController.

Parameters:
NameTypeDescription
configObject
To Do
  • ProtectionController does almost all of its tasks automatically after init() is called. Applications might want more control over this process and want to go through each step manually (key system selection, session creation, session maintenance). This module can be accessed using the MediaPlayer API getProtectionController()

Methods

handleKeySystemFromManifest()

Once all mediaInfo objects have been added to our mediaInfoArray we can select a key system or check if the kid has changed and we need to trigger a new license request

initializeForMedia(mediaInfoopt)

Initialize this protection system for a given media type.

Parameters:
NameTypeAttributesDescription
mediaInfoStreamInfo<optional>

Media information

setMediaElement(element)

Associate this protection system with the given HTMLMediaElement. This
causes the system to register for needkey/encrypted events from the given
element and provides a destination for setting of MediaKeys

Parameters:
NameTypeDescription
elementHTMLMediaElement

the media element to which the protection
system should be associated

setRobustnessLevel(level)

Sets the robustness level for video and audio capabilities. Optional to remove Chrome warnings.
Possible values are SW_SECURE_CRYPTO, SW_SECURE_DECODE, HW_SECURE_CRYPTO, HW_SECURE_CRYPTO, HW_SECURE_DECODE, HW_SECURE_ALL.

Parameters:
NameTypeDescription
levelstring

the robustness level

setServerCertificate(serverCertificate)

Sets a server certificate for use by the CDM when signing key messages
intended for a particular license server. This will fire
an error event if a key system has not yet been selected.

Parameters:
NameTypeDescription
serverCertificateArrayBuffer

a CDM-specific license server
certificate

Fires:
  • ProtectionController#event:ServerCertificateUpdated

setSessionType(value)

Sets the session type to use when creating key sessions. Either "temporary" or
"persistent-license". Default is "temporary".

Parameters:
NameTypeDescription
valuestring

the session type

stop()

Stop method is called when current playback is stopped/resetted.