2013-03-30 52 views
6

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

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

但我似乎无法使用Require.js加载jwplayer。这是我收到的错误方法: 遗漏的类型错误:无法调用未定义

法“jwplayer”这是我的示例代码(基因敲除,图表对象全部成功加载)

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吗?

回答

8

jwplayer.js没有定义require.js一个模块,所以你将不得不使用shim config,像这样:

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

你可以看到更多有关如何使用它在requirejs api文档中。

编辑:代码示例中的错字。

编辑2:应该指出的是,jwplayer()将返回null,如果它不能发现你传递给它的球员,所以即使它是正确加载,它仍然会抛出这个错误。如果你甚至还包括配置之后得到错误,请尝试在需要回调添加类似

console.log(jwplayer.api); 

,并检查您的控制台,看看是否有什么存在。

+0

谢谢,垫片配置完美地工作! :) –

+0

非常好,投票! :) – emaxsaun