Samsung tv mpeg-dash доставка

Я пишу новое приложение для доставки контента на Samsung TV. Я использую платформу приложений и проигрыватель avplay.

Содержание, которое мы используем, - это H.264, завернутый в Mpeg-Dash

Я выполнил приведенную ниже документацию

Документы Samsung PlayReady

У меня есть класс playerWrapper, указанный ниже

JSFiddle

var playerWrapper = {
    player: null,
    licenseServerURL : null,
    token : null,
    contentURL : null,
    duration: 0,
};

var playCallBack = {
oncurrentplaytime : function(time) { 
    playerWrapper.setCurTime(time);
    alert(window.debugStatement + 'current time: ' + time);
},
onresolutionchanged: function(width, height) { alert(window.debugStatement + 'resolution changed to width:' + width + ' height:' + height);},
onstreamcompleted: function() { alert(window.debugStatement + 'stream completed');},
onerror: function(error) { 
    console.log(JSON.stringify(error));
    alert(window.debugStatement + 'player error: ' + error);
}
};

var bufferingCallBack = {
onbufferingstart: function() {
    alert(window.debugStatement + 'buffering started');
    playerWrapper.setDuration();
},
onbufferingprogress: function(percent) { alert(window.debugStatement + 'buffering percent: ' + percent); },
onbufferingcomplete: function() { alert(window.debugStatement + 'buffering complete');}
};

playerWrapper.setContentURL = function(url){
playerWrapper.contentURL = url + '|COMPONENT=HAS';
// playerWrapper.contentURL = url + '|COMPONENT=WMDRM';
};

playerWrapper.setLicenserURL =  function(url){
playerWrapper.licenseServerURL = url;
playerWrapper.player.setPlayerProperty(4, playerWrapper.licenseServerURL, playerWrapper.licenseServerURL.length);
};

playerWrapper.setToken = function(token){
playerWrapper.token = token;
playerWrapper.player.setPlayerProperty(3, playerWrapper.token, playerWrapper.token.length);
};

playerWrapper.setCurTime = function(time){
alert(window.debugStatement + 'current time: ' +time);
};

playerWrapper.setWindow = function() {
playerWrapper.player.setDisplayRect({
    top: 58,
    left: 458,
    width: 472,
    height: 270
});
},

playerWrapper.configurePlayer = function(player){
alert(window.debugStatement + 'Setting AVPlayer ');
playerWrapper.player = player; 
playerWrapper.player.init({
    containerID: 'player_container',
    bufferingCallback: bufferingCallBack,
    playCallback: playCallBack,
    displayRect: {
        top: 0,
        left: 0,
        width: 1920,
        height: 1080
    },
    autoRatio: true,
});
};

playerWrapper.getPlayerError = function(error){
alert(window.debugStatement + 'AVPlayer FETCH ERROR');
};

playerWrapper.setDuration = function() {
currentDuration = Player.AVPlayer.getDuration();
alert(window.debugStatement + 'current duration: ' + currentDuration);
playerWrapper.duration = convertTime(currentDuration);
};

playerWrapper.play = function(){
try{
    playerWrapper.player.open(
        playerWrapper.contentURL,
        {
            drm : {
                type : "Playready",
                company : 'Microsoft Corporation',
                deviceID : '1'
            }
        });
    playerWrapper.player.play(playerWrapper.playSuccess,    playerWrapper.playError);
}catch(error){
    alert(window.debugStatement + 'play error: ' + error);
}

};

playerWrapper.playSuccess = function(){
alert(window.debugStatement + 'success');
};

playerWrapper.playError = function(error){
alert(window.debugStatement + 'play error: ' + error);
},

playerWrapper.init = function(){
try{
    webapis.avplay.getAVPlay(playerWrapper.configurePlayer,     playerWrapper.getPlayerError);
    if(typeof playerWrapper.player === 'undefined') throw 'player fetch failure';
    return playerWrapper;
}catch(error){
    alert(window.debugStatement + 'AVPlayer Initialisation ERROR: ' + error);
}
};

Этот класс инициализируется из основного файла app.js, который просто следует за этим рабочим документом

  • Вызов playerWrapper init
  • устанавливает URL-адрес лицензии
  • устанавливает URL-адрес контента
  • устанавливает токен
  • вызывает воспроизведение

Похоже, что при использовании плагина PlayReady или метода SetPlayerProperty, как описано в документах, телевизор не вызывается на сервер лицензий.

глядя на спецификацию плеера, я вижу, что поддерживаются Mpeg-Dash и H.264.

Характеристики плеера

Мои вопросы

  • что я могу сделать, чтобы обойти эту проблему?
  • Кто-нибудь видел документацию для этой ошибки, как будто я могу получить, что, по крайней мере, у меня будет отправная точка?