require.js、AMD 和 "missing license key" 使用 jwPlayer 7

require.js, AMD and "missing license key" using jwPlayer 7

我很高兴 jwPlayer 7 在他们的 js 文件中使用兼容的格式,我目前正在使用一个包括 require.js 的设置,我在我的网站上有一个播放器,但它显示"Error setting up player: Missing license key".

这个在模板文件里

<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 指向从我的帐户仪表板下载的原始播放器脚本,initializes/returns jwplayer 对象。 initJwplayer 后面的文件包含 BackgroundJwPlayer 对象的初始化,调用初始化函数将设置播放器。

我尝试在调用 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;

其他一切似乎都正常,播放器已初始化、识别和其他东西...只有钥匙不见了,即使它在那里。

非常感谢任何帮助。

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

"Some of the (hard)coding within JW Player relies on "jwplayer" 被限定为全局变量。"

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

window.jwplayer = jwplayer;

编码愉快!