使用Require.js加载jwplayer.js

时间:2013-03-30 01:26:53

标签: requirejs jwplayer

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

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

但我似乎无法使用Require.js加载jwplayer。这是我收到的错误方法: 未捕获的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(); 
    });

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

1 个答案:

答案 0 :(得分:8)

jwplayer.js没有为require.js定义模块,因此您将不得不使用shim config,如下所示:

require.config({
    shim: {
        'jwplayer/jwplayer': {
            exports: 'jwplayer'
        }
    }
});

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

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

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

的内容
console.log(jwplayer.api);

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