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 をどのようにロードするのでしょうか?

4

1 に答える 1

8

jwplayer.js は require.js のモジュールを定義していないため、次のようなshim configを使用する必要があります。

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

使用方法の詳細については、requirejs API ドキュメントを参照してください。

編集:コードサンプルのタイプミス。

編集 2: jwplayer() は、渡したプレーヤーが見つからない場合は null を返すことに注意してください。そのため、正しくロードされていても、そのエラーがスローされます。構成を含めた後でもエラーが発生する場合は、次のようなものを追加してみてください

console.log(jwplayer.api);

必要なコールバックで、コンソールをチェックして、そこに何かがあるかどうかを確認します。

于 2013-03-30T01:46:54.403 に答える