使用Require.js加载jwplayer.js

Ari*_*tyo 6 jwplayer requirejs

所以,我是Require.js的新手,我通过使用Require.js方法加载各种其他库来学习这个库.

我已成功加载Knockout.js对象,Chart.js对象,以及自定义Require.js定义的对象.

但我似乎无法使用Require.js加载jwplayer.这是我收到的错误方法: Uncaught TypeError:无法调用未定义的方法'jwplayer'

这是我的示例代码(Knockout,Chart对象全部加载成功)

require(['jwplayer/jwplayer', 'libs/Chart', 'libs/knockout-2.1.0', 'appViewModel','helper/util'], function(jwplayer, chart, ko, appViewModel, util) {

//LOADING FROM jwplayer.js
jwplayer("player").setup({
    width: '320',
    height: '40',
    sources: [{
        file: "rtmp://127.0.0.1:1935/vod/mp3:sample_1.mp3"
    },{
        file: "http://127.0.0.1:1935/vod/sample_1.mp3/playlist.m3u8"
    }]
});

//LOADING FROM Chart.js
var barChartData = {
    labels : ["January","February","March","April","May","June","July"],
    datasets : [
        {
            fillColor : "rgba(220,220,220,0.5)",
            strokeColor : "rgba(220,220,220,1)",
            data : [65,59,90,81,56,55,40]
        },
        {
            fillColor : "rgba(151,187,205,0.5)",
            strokeColor : "rgba(151,187,205,1)",
            data : [28,48,40,19,96,27,100]
        }
    ]   
};
var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Bar(barChartData);

//LOADING FROM knockout-2.1.0.js
ko.applyBindings(new appViewModel());

//LOADING FROM A CUSTOM DEFINED OBJECT
util.greets(); 
    });
Run Code Online (Sandbox Code Playgroud)

那么如何使用Require.js加载jwplayer.js?

Ric*_*ntz 8

jwplayer.js没有为require.js定义模块,所以你将不得不使用shim配置,如下所示:

require.config({
    shim: {
        'jwplayer/jwplayer': {
            exports: 'jwplayer'
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

您可以在requirejs api文档中查看有关如何使用它的更多信息.

编辑:代码示例中的拼写错误.

编辑2:应该注意的是,如果jwplayer()找不到你传递的播放器,它将返回null,所以即使它被正确加载,它仍然会抛出该错误.如果您在包含配置后仍然收到错误,请尝试添加类似的内容

console.log(jwplayer.api);
Run Code Online (Sandbox Code Playgroud)

在require回调中,检查你的控制台,看看是否有任何东西.