web-dev-qa-db-ja.com

ページのajaxがロードされた部分でVideo.jsプレーヤーを初期化します

ビデオプレーヤーは実際には正常にロードされます。私の実際の問題は、ページの一部をAJAXで更新し、それらの部分にビデオプレーヤーが含まれている場合、HTML5プレーヤーは正常に読み込まれますが、 Video.js ではありません。それをカスタマイズする部分。

Video.jsファイルはページのヘッダーに読み込まれます。ドキュメントを読みましたが、すでに読み込まれているページでビデオプレーヤーを初期化する方法が見つかりません。 Video.jsでビデオプレーヤーを正しくロードするために、ビデオを含むページの一部がロードされたときに呼び出すことができるmyPlayer.initialize()種類の関数はありませんか?

Video.jsファイルはページの読み込み時にのみ自動的にそれを行うと思います。

あなたの貴重な助けをありがとう!

14
Jeff B.

はい、あなたができるドキュメントによると:

videojs("example_video_1", {}, function(){
  // Player (this) is initialized and ready.
});

特に動的コンテンツで使用するためのものです:)

出典: http://docs.videojs.com/docs/guides/setup.html (下部)

17
Bruno

私も同じ問題を抱えていました。私のシナリオ:

ビデオタグ付きのhtmlコードをajax経由でロードすると、最初は機能しますが、ajaxを使用してコンテンツを再ロードすると(ページを更新しない)、機能しません。

IDはvideojsによって変更されるため、私が行ったのは、クラスを介してビデオを見つけることに切り替えることでした。

だからこれは今私の電話です:

videojs(document.getElementsByClassName("video-js")[0], {}, function(){
          // Player (this) is initialized and ready.
});

これが、 Bruno ソリューションが機能しなかった同じ問題を抱えている人に役立つことを願っています。

18
Macumbaomuerte

ループでやった

var massVideo = $('.video-js');
for(var i = 0; i < massVideo.length; i++){
  videojs(massVideo[i]).ready(function(){});
}