0

JavaScript を使用して、サイトのコンテンツを動的に生成および変更しています。
ビデオ ファイルと videojs-javascript-files を JavaScript で追加し、 を呼び出してビデオを初期化します_V_(videos[i].id);
ただし、ビデオの初期化は初回のみ機能します。
その後、サイトのコンテンツを変更してからビデオのページに再度移動すると、ビデオを再度初期化しても (ビデオ タグの ID は同じままです) 動作しません。
ブラウザの HTML5 ビデオプレーヤーはありますが、videojs スタイルのものはありません。

プレーヤーの初期化を「強制」できる他の方法はありますか? この問題の原因は何ですか?

これは私のスクリプトです:

videoPlayer = {
    check: function() {
        videos = document.getElementsByTagName("video");
        if (videos.length > 0) {
            this.init();
        }
    },
    init: function() {
        if (isPlayer) {
            //alert("init");
            for (var i = 0; i < videos.length; i++) var player = _V_(videos[i].id, {}, function() {
                alert("player init!")
            });
        }
        else {
            this.build();
        }
    },
    build: function() {
        //alert("build");
        if (isPlayer == false) {
            var head = document.getElementsByTagName("head")[0];
            var videoScript = document.createElement('script');
            videoScript.type = 'text/javascript';
            videoScript.src = './min/g=videojs';
            var videocss = document.createElement('link');
            videocss.type = 'text/css';
            videocss.rel = 'stylesheet';
            videocss.href = './min/g=videocss';
            isPlayer = true;
            videoScript.onload = this.init;
            head.appendChild(videocss);
            head.appendChild(videoScript);
        }
    }
}

事前にどうもありがとうございました!

4

2 に答える 2

0

かなり遅いことはわかっていますが、ビデオ要素の子を確認してみてください。たとえば、クラス vjs-poster の div が既に含まれている場合は何もせず、そうでない場合は video-js を初期化します。

于 2014-01-06T10:57:07.333 に答える
0

以前のビデオ要素を再利用する代わりに、新しいビデオ要素を作成して (再) 初期化してみましたか?

src、トラック、キャプションなどすべてを新しい値で「リセット」することもできます

于 2012-11-26T15:31:06.347 に答える