1

私は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 では非表示になっています。正直なところ隠した方がいいと思います。

前もって感謝します。

4

1 に答える 1

0

http://caniuse.com/fullscreenによると、フルスクリーン API は Firefox で部分的にサポートされています。

于 2013-12-17T01:47:36.653 に答える