Reputation: 10400
Persistent license on Dashjs4.x(latest) See issue #3169. I was able to proofOfConcept and works on Win10 EdgeChromium. How should I handle a license expiration or obsolete drmSessionId? My test license has an expiration of 15min.
dashjs.protectionData.sessionId, sessionType
before playback to reuse an existing offline licenseQuestions
How to handle an expired or obsolete sessionId used in a protData config?
This raises an exception but what is the clean way of reinit a playback witn an empty sessionId
config value?
How can I check for EME license sessionId
still valid before even starting a playback?
// various error messages
[Stream] DRM: KeyStatusChange error! -- License has expired
[Stream] DRM: unable to create session! --Error generating key request -- NotSupportedError
[Stream] DRM: unable to create session! --Could not load session (IIQgEOogigurOuL4bCQ7nQ==)! TypeError
// Dashjs configuration object with an offline license sessionId:
"com.microsoft.playready": {
"serverURL": laUrl
, "priority":1
, "sessionType": "persistent-license"
, "sessionId": "IIQgEOogigurOuL4bCQ7nQ==" // reuse an existing drmSession
, "persistentState": "optional", "distinctiveIdentifier": "optional"
, "videoRobustness": "2000"
, "audioRobustness": "2000"
, "systemStringPriority": [ "com.microsoft.playready.recommendation","com.microsoft.playready" ]
}
// log sessionId and later reuse in a config object
self.player.on(dashjs.MediaPlayer.events.KEY_SESSION_CREATED, function(evt) {
if (!evt.data) return; // data=DrmSession object
var sessionType = evt.data.getSessionType();
if (sessionType==='persistent-license') { // "temporary", "persistent-license"
var sessionId = evt.data.getSessionId(); // "IIQgEOogigurOuL4bCQ7nQ=="
console.log("DRMKeySession type="+sessionType+ ", id="+ sessionId); //FIXME: store sessionId for later use
}
});
self.player.on(dashjs.MediaPlayer.events.KEY_STATUSES_CHANGED, function(evt) {
// evt.error.code, .message
// code=110, message="DRM: KeyStatusChange error! -- License has expired"
// code=113, message="DRM: unable to create session! --Error generating key request -- NotSupportedError"
console.log("KeyStatusesChanged", evt);
});
Upvotes: 0
Views: 113