我尝试在Orsay TV(Tizen之前的三星电视)上播放流(使用PlayReady的MPEG-DASH)。未加密的DASH工作正常。我试图严格按照DRM Today手册(即我的DRM提供商)获取许可证,但播放没有开始,一段时间后我得到渲染错误,或根本没有流。 CustomData是根据DRM提供程序规范生成的,它适用于其他平台和设备。由于DRM提供商的手册,它的base64散列到customDataBase64。
<object id="pluginPlayerSef" classid="clsid:SAMSUNG-INFOLINK-SEF" style="border:none; width:0px;height:0px;"></object>
<object id="pluginDRM" classid="clsid:SAMSUNG-INFOLINK-SEF"></object>
var playerPlugin = document.getElementById("pluginPlayerSef");
var streamUrl = '...' + '|COMPONENT=HAS';
var laUrl = 'https://.../RightsManager.asmx';
var customData = {'userId': '...', 'sessionId': '...', 'merchant': '...'};
var customDataBase64 = 'eyJ1c2...';
var xmlData = '<?xml version='1.0' encoding='utf-8'?>' +
'<PlayReadyInitiator xmlns='http://schemas.microsoft.com/DRM/2007/03/protocols/'>' +
'<LicenseServerUriOverride>' +
'<LA_URL>' + laUrl + '</LA_URL>' +
'</LicenseServerUriOverride>' +
'<SetCustomData>' +
'<CustomData>' + customDataBase64 + '</CustomData>' +
'</SetCustomData>' +
'</PlayReadyInitiator>';
playerPlugin.Execute("InitPlayer", streamUrl);
playerPlugin.Execute("SetPlayerProperty", 3, customDataBase64, customDataBase64.length);
playerPlugin.Execute("SetPlayerProperty", 4, laUrl, laUrl.length);
playerPlugin.Execute('StartPlayback', 0);
我还尝试了另一种方法来实现它:
var pluginDRM = document.getElementById("pluginDRM");
pluginDRM.Open("PlayReadyDrm", "1.000", "PlayReadyDrm");
pluginDRM.Execute("ProcessInitiatorsFromXml", xmlData, xmlData.length);
pluginDRM.Execute("Start", streamUrl);
playerPlugin.Execute("InitPlayer", streamUrl);
playerPlugin.Execute('StartPlayback', 0);
我尝试使用和不使用pluginDRM.Execute(&#34; Start&#34;,streamUrl)
行代码至于上面的组成部分,我尝试了所有这些:
var streamUrl = '...' + '|COMPONENT=HAS';
var streamUrl = '...' + '|COMPONENT=WMDRM';
var streamUrl = '...' + '|COMPONENT=HAS|DRM_TYPE=PLAYREADY';
var streamUrl = '...' + '|COMPONENT=HAS|DRM_TYPE=WMDRM';
我做错了什么?请帮忙。