@@ -194,6 +194,11 @@ class EMEController implements ComponentAPI {
194194 break ;
195195 }
196196 return this . _widevineLicenseUrl ;
197+ case KeySystems . CLEARKEY :
198+ if ( ! this . _clearkeyServerUrl ) {
199+ break ;
200+ }
201+ return this . _clearkeyServerUrl ;
197202 }
198203
199204 throw new Error ( `no license server URL configured for key-system "${ keySystem } "` ) ;
@@ -312,7 +317,7 @@ class EMEController implements ComponentAPI {
312317 alg ?: string ,
313318 kid ?: string ,
314319 k ?: string
315- }
320+ } ;
316321
317322 const keyarray : responseFormat [ ] = [ ] ;
318323 for ( const id of request . kids ) {
@@ -624,6 +629,10 @@ class EMEController implements ComponentAPI {
624629 case KeySystems . WIDEVINE :
625630 // For Widevine CDMs, the challenge is the keyMessage.
626631 return keyMessage ;
632+ case KeySystems . CLEARKEY :
633+ // For CLEARKEY, the challenge is the keyMessage.
634+ return keyMessage ;
635+ // return JSON.parse(new TextDecoder().decode(keyMessage));
627636 }
628637
629638 throw new Error ( `unsupported key-system: ${ keysListItem . mediaKeySystemDomain } ` ) ;
@@ -653,7 +662,14 @@ class EMEController implements ComponentAPI {
653662 const xhr = this . _createLicenseXhr ( url , keyMessage , callback ) ;
654663 logger . log ( `Sending license request to URL: ${ url } ` ) ;
655664 const challenge = this . _generateLicenseRequestChallenge ( keysListItem , keyMessage ) ;
656- xhr . send ( challenge ) ;
665+ switch ( keysListItem . mediaKeySystemDomain ) {
666+ case KeySystems . WIDEVINE :
667+ xhr . send ( challenge ) ;
668+ case KeySystems . CLEARKEY :
669+ // xhr.setRequestHeader('content-type', 'application/json')
670+ // xhr.send(JSON.stringify(challenge));
671+ xhr . send ( challenge ) ;
672+ }
657673 } catch ( e ) {
658674 logger . error ( `Failure requesting DRM license: ${ e } ` ) ;
659675 this . hls . trigger ( Events . ERROR , {
0 commit comments