require.js,AMD和"缺少许可证密钥"使用jwPlayer 7

时间:2016-02-11 10:07:20

标签: javascript requirejs jwplayer7

我很高兴jwPlayer 7在他们的js文件中使用兼容格式,我目前正在使用包括require.js的设置,而且我在我的网站上获得了一个播放器,但它显示了"设置播放器时出错:缺少许可证密钥"。

这是在模板文件

<div id="jwPlayerWrapper"></div>
<script>
  require(['jwplayer','initJwplayer'], function(jwplayer, BackgroundJwPlayer) {
    jwplayer.key="[HereWouldBeMyKey]"; // tried this first
    var controller = new BackgroundJwPlayer('jwPlayerWrapper', jwplayer);
    controller.init();
  });
</script>

别名jwplayer指向从我的帐户仪表板下载的原始播放器脚本,该脚本初始化/返回jwplayer对象。 initJwplayer背后的文件包含BackgroundJwPlayer对象的init,并在此调用init函数将设置播放器。

我尝试在调用jwplayer.setup之前在模板内部的require块内以及init函数内定义键,两者都没有成功。

这是来自initJwplayer.js

var BackgroundJwPlayer = function(target, jwplayer) {

    // jwplayer.key="[HereWouldBeMyKey]"; // tried this second

    this.containerSelector = target;
    this.jwplayer = jwplayer;

};

BackgroundJwPlayer.prototype.init = function() {
    var player = this,
        jwplayer = player.jwplayer;

    // jwplayer.key="[HereWouldBeMyKey]"; // tried this third

    // Calling new jwplayer class
    var playerInstance = jwplayer(player.containerSelector);

    playerInstance.setup({
        file: "/video/some_video.mp4",
        image: "/images/some_video_preview.jpg",
        width: 640,
        height: 360,
        title: 'Basic Video Embed',
        description: 'A video with a basic title and description!',
        mediaid: '123456'
    });
};

return BackgroundJwPlayer;

其他所有内容似乎都运行良好,播放器已初始化,识别并填充...只有键丢失,即使它在那里。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

我在支持委员会的帮助下找到了答案。

&#34; JW Player中的一些(硬)编码依赖于&#34; jwplayer&#34;作为全局变量的范围。&#34;

在我分配密钥之前在require块中添加以下代码为我解决了这个问题。

context.setProperty("Assertions", new Assertions());   
    class Assertions{    
    def printAssertion(tStep){    
        def assertions = tStep.getAssertionList()    
        //Loop on assertions           
    }    
}

快乐的编码!