私はvideo.jsを使用して、カスタマイズされたビデオ プレーヤーを構築しています。私が機能に組み込みたいことの 1 つは、全画面モードでビデオの再生が終了した場合に、通常モードに戻ることを確認するためのチェックです。これは、 video.js apiを使用して簡単に実装できると思いました。
私のコードでは、「終了」イベントをリッスンしてから、このイベントのハンドラーで cancelFullScreen() メソッドを起動していますが、これは Chrome でまったく問題なく動作します (IE 7/8 のフラッシュ フォールバック モードでも動作します)。 Firefox 19 ではまったく機能しません。ウィンドウは全画面モードのままです。
理由はありますか?
ここに私のマークアップがあります:
<link rel="stylesheet" href="http://vjs.zencdn.net/3.2/video-js.css">
<script src="http://vjs.zencdn.net/c/video.js"></script>
<div class="vid_container" style="width: 934px; height: 524px; left: 0; top: 0;">
<video id="video_NewMoon" controls class="video-js vjs-default-skin" width="934" height="524" poster="/cms/arcadiacorp_uk/repository/pages/static/static-0000008447/images/poster.jpg" data-setup="{}">
<source src="http://ecmcstg.arcadiagroup.ltd.uk/cms/arcadiacorp_uk/repository/pages/static/static-0000008447/flash/nailVid.mp4" type="video/mp4">
<source src="http://ecmcstg.arcadiagroup.ltd.uk/cms/arcadiacorp_uk/repository/pages/static/static-0000008447/flash/nails.webm" type="video/webm">
<a href="http://ecmcstg.arcadiagroup.ltd.uk/cms/arcadiacorp_uk/repository/pages/static/static-0000008447/flash/nailVid.mp4" title="Click here to download the video">Your browser cannot play this video, click here to download it instead.</a>
</video>
</div>
ここに私の js コードがあります。これは body 終了タグのすぐ内側にあります:
var myPlayer = _V_("video_NewMoon");
var movEnded = function(){
myPlayer.bigPlayButton.hide();
myPlayer.loadingSpinner.hide();
if(myPlayer.isFullScreen === true) {
console.log("yep, we're fullscreen - lets shut this down");
myPlayer.cancelFullScreen();
}
};
myPlayer.addEvent("ended", movEnded);
終了したハンドラーで jquery を使用して Esc キーをトリガーするなど、他のさまざまな方法を試しましたが、これも機能しませんでした。私は今、これで忍耐力を使い果たしています。
ああ、バグの件ですが、Chrome ではローディング スピナーが表示されますが、FF では非表示になっています。正直なところ隠した方がいいと思います。
前もって感謝します。