2013-03-30 9 views
6

私はRequire.jsを初めて使っています。このライブラリは、Require.jsメソッドを使ってさまざまなライブラリを読み込んで学習しています。Require.jsを使ってjwplayer.jsを読み込む

Knockout.jsオブジェクト、Chart.jsオブジェクト、およびカスタムRequire.js定義済みオブジェクトを正常に読み込んでいます。

しかし、Require.jsを使用してjwplayerをロードできないようです。これは私が受信したエラーメソッドです: キャッチされない例外TypeError:これは私のサンプルコードです未定義

の方法「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 docsにあります。

編集:コードサンプルで入力してください。

編集2:jwplayer()は、渡したプレーヤーが見つからない場合はnullを返すので、正しくロードされても引き続きそのエラーがスローされます。あなたも設定を含めた後、エラーを取得している場合は、必要にコールバックで

console.log(jwplayer.api); 

のようなものを追加してみてください、何がありますかどうかを確認するためにあなたのコンソールを確認してください。

+0

ありがとうございます、シムの設定は完全に動作します! :) –

+0

非常に良い、投票アップ! :) – emaxsaun

関連する問題