1. 程式人生 > >video.js 移動端視訊播放器外掛心得

video.js 移動端視訊播放器外掛心得

  專案開發遇到視訊播放,考慮到不同移動端需要統一風格,所以選擇用視訊播放外掛。看了試了好多外掛,發現video.js用量最多(必有其好處),用法也很便捷。video.js jquery外掛庫,可直接下載不需要積分;api也有;

    但是在移動端的相容不是很好。

    問題:移動端上點選按鈕開始後,再次點選視訊,不會暫停。(自己測試,click事件在移動端點選視訊,不觸發(不明所以));

    解決:自己寫了js,問題解決。(用touch類事件,見程式碼);

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Video.js 6.2.8</title>
    <link href="css/video-js.css" rel="stylesheet">
    <script src="js/jquery.js"></script>
    <script src="js/video.min.js"></script>
    <script src="js/zh-CN.js"></script>
    <style>
        body {
            background-color: #191919
        }

        .m {
            width: 100%;
            height: 100%;
            margin-left: auto;
            margin-right: auto;
            margin-top: 100px;
        }
    </style>
</head>

<body>
<div class="m">
    <video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="1000" height="400"
           poster="video/cover.jpg"
           data-setup="{}">
        <source src="video/top_video.mp4" />
        <source src="" type='video/webm'/>
        <source src="" type='video/ogg'/>
        <!--<track kind="captions" src="demo.captions.vtt" srclang="en" label="English"></track>-->
        <!--<!– Tracks need an ending tag thanks to IE9 –>-->
        <!--<track kind="subtitles" src="demo.captions.vtt" srclang="en" label="English"></track>-->
        <!--<!– Tracks need an ending tag thanks to IE9 –>-->
    </video>

    <script type="text/javascript">
        var myPlayer = videojs('example_video_1');
        videojs("example_video_1").ready(function () {
            var myPlayer = this;
            myPlayer.pause();

        });

        // 在此處為點選video,和點選按鈕,都新增上事件,來處理視訊的播放暫停;
        $('.m').on('touchstart','#example_video_1_html5_api',function () {
                myPlayer.pause();
                $('.vjs-big-play-button').show();
        })
        $('.m').on('touchstart','.vjs-big-play-button',function () {
            myPlayer.play();
            $('.vjs-big-play-button').hide();
        })


    </script>
</div>
</body>
</html>