Code can request a key through DRMManager.
The Browser TVSDK also exposes a setProtectionData API through the DRMManager object:
[ /**
* This will only work for MSE.
* <p> Attach key system specific data to use for DRM
license acquisition. </p>
* @param {Object} protectionData - an object containing property names corresponding to key system name strings
* (e.g. "org.w3.clearkey") and associated values being instances of
* MediaPlayer.vo.protection.ProtectionData.
* @returns {AdobePSDK.PSDKErrorCode} kECSuccess or one of the error codes.
* @function
* @memberof AdobePSDK.DRMManager#
*/
setProtectionData: function(protectionData)
Your code would need to call this API before starting content playback the normal way. MediaPlayer.vo.protection.ProtectionData is documented here: https://vm2.dashif.org/dash.js/docs/jsdocs/MediaPlayer.vo.protection.ProtectionData.html
Here is sample protection data object with license server URLs for both PlayReady and Widevine.
var protectionData = {
"com.widevine.alpha": {
"serverURL": "https://wv.service.expressplay.com/hms/wv/rights/
?ExpressPlayToken=AQAAABIDKA4AAABQuPPoebWWZZD2l3APRKkkagEDOXm
CjgbhsqJTYeZ9KabkjCvSLvuXGHiVLymBnouGXDdCKpbz5IvB3jCZp9U05pys
l9eavucsWXnA0tafbM-1SSJKXOa70kvxAJ_ybhdcmy7-6g"
},
"com.microsoft.playready": {
"serverURL": "https://expressplay-licensing.axprod.net/
LicensingService.ashx?ExpressPlayToken=AQAAAw_ZXqcAAAB
gHD1gnn_AMQJKfFCP3k9zbBw2srzBLryJVLXclnjhcSBCz4TBzrtfe
gmSw1hAKdFHTNL-KVBGsI4ygBnfPRBUCvGsVOwpQ944fhq45W06ygJ
roB2xOrM03tbkWcrthI7y_UQdHzufHjcBqKZm8QDoqKpxrxc"
}
};
TVSDK does not provide any API to force a particular DRM system because each browser supports one DRM system only.