X5内核浏览器video自动全屏解决办法-canvas

最近在做手机端上面播放视频的项目,但是在安卓上面,video的播放是脱离页面,置于最顶层的,所以带来了很多问题,为了解决这个问题,查看了多方资料,写了下面简单的demo,方便以后使用。

下面就是运用canvas重绘video视频。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=640,user-scalable=no"/>
    <title>X5内核浏览器video自动全屏解决办法-canvas</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        html,body{
            width: 100%;
            height: 100%;
            overflow:hidden!important;
        }
        
        .content{
            position: absolute;
            width: 100%;
            height: 1136px;
            top: 50%;
            transform: translate3d(0, -50%, 0);
        }

        #play{
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate3d(-50%, -50%, 0);
            width: 100px;
            height: 100px;
            line-height: 100px;
            font-size: 28px;
            border: 1px solid #000;
            color: #000;
            text-align: center;
            border-radius: 50%;
        }
        #video{
            position:absolute;
            left:50%;
            transform: translate3d(-50%,0,0);
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center center;
            display:none;
        }
        #myCanvas{
            display: block;
        }
        
    </style>
</head>
<body>
    <div class="content">
        <div id="play">播放</div>
        <video id="video" x5-playsinline="true" playsinline="true" webkit-playsinline="true" x5-video-player-type="h5" x5-video-player-fullscreen="true" src="movie.mp4" preload></video>
        <canvas id="myCanvas">
            Your browser does not support the HTML5 canvas tag.
        </canvas>
    </div>
    <script type="text/javascript">

        var v = document.getElementById('video');
        var c = document.getElementById('myCanvas');
        var ctx = c.getContext('2d');
        document.getElementById("myCanvas").width = 640;  
        document.getElementById("myCanvas").height = 1136; 
        var cwidth = document.getElementById('myCanvas').offsetWidth;
        var cheight = document.getElementById('myCanvas').offsetHeight;
        // 初始化定时器
        var i=null;
        document.getElementById("play").addEventListener("click",function(){
            document.getElementById('video').play()
        });
        // 播放
        v.addEventListener("play", function() {
            document.getElementById("play").style.cssText = " display:none ";
            var i = window.setInterval(function() {
                ctx.drawImage(v, 0, 0, cwidth, cheight);
            }, 20);  // 每0.02秒画一张图片
        }, false);

        // 暂停
        v.addEventListener("pause", function() {
            window.clearInterval(i);  // 暂停绘画
        }, false);

        // 结束
        v.addEventListener("ended", function() {
            clearInterval(i);
        }, false);
    </script>
</body>
</html>

 

posted @ 2018-05-07 12:08  winteronlyme  阅读(5401)  评论(0编辑  收藏  举报