使用Require.js加载jwplayer.js

6

我是一名新手,正在学习Require.js,通过使用Require.js方法加载其他各种库来熟悉这个库。

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

但是我似乎无法使用Require.js加载jwplayer。这是我收到的错误信息:

Uncaught TypeError: Cannot call method 'jwplayer' of undefined

这是我的示例代码(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个回答

8

jwplayer.js没有为require.js定义一个模块,因此您需要使用shim配置,例如:

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

您可以在requirejs api文档中了解更多关于如何使用它的内容。

编辑:代码示例中有错别字。

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

console.log(jwplayer.api);

在require回调函数中检查您的控制台,看看是否有任何内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接