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>

原文地址:https://www.cnblogs.com/winteronlyme/p/9002002.html

时间: 2024-12-13 07:43:33

X5内核浏览器video自动全屏解决办法-canvas的相关文章

阻止 iPhone 视频自动全屏

最近一年都在做直播,遭video 全屏的问题困扰了很久.下面将阻止 ios视频自动全屏的办法写出来.添加 playsinline 和 webkit-playsinline="true": 例如:<video id="video" playsinline webkit-playsinline ></video> 备注: 1.此方法仅仅针对 ios有效(safari.微信都有效). 2.playsinline属性针对ios 10以上系统有效. 3

微信内置浏览器video标签自动全屏的问题

微信打开h5video视频的时候都会自动全屏播放,有时候影响用户体验 要禁止自动全屏就要加这几个属性 'x5-playsinline':'true', 'webkit-playsinline':'true', 'playsinline':'true', 原文地址:https://www.cnblogs.com/xxflz/p/10161629.html

audio与video控件/标签的隐藏,iso/Android下自动全屏播放,短暂黑屏问题

(一)audio音频标签 <audio src="xxx.mp3"></audio> (二)video视频标签 <video src="xxx.mp4"></video> (三)使用video代替audio (1) 有时候audio标签被屏蔽,不能被浏览器解释通过,可以选择使用video来代替: <video src="xxx.mp3"></video> (2) 若想要将音乐

如何禁止 iPhone Safari video标签视频自动全屏?

最近做一个移动端微信页面项目,在微信页面中有视频播放,但是需要禁止IOS的自动全屏播放(前提必须使用video标签).如: <video id="post" autoplay loop preload="auto"> <source src="foo.mp4" type="video/mp4"> </video> 在iPhone safari 点击视频会弹出播放器进行全屏播放. 在网上看了看

h5 video 点击自动全屏

加上如下属性 https://blog.csdn.net/weixin_40974504/article/details/79639478 可阻止自动全屏播放,感谢 https://blog.csdn.net/weixin_40974504/article/details/79639478 原文地址:https://www.cnblogs.com/zonglonglong/p/10015623.html

【极品代码】一般人我不告诉他,手机端h5播放时不自动全屏代码

已测适用于ios,某些安卓手机微信下播放视频会出现播放器控件(这个实在是无力吐槽了,因为之前还遇到过微信播放完视频后竟然无法退出全屏出现广告的情况,只有播放完后刷新页面并且要放到框架页里才能屏蔽微信视频广告!),之前用canvans渲染,感觉不够太完美,又弄成背景切换形式得(用背景切换形式可以完美解决当一个容器有transform:rotate(90deg)属性时自适应百分比问题,若是canvans需去计算高宽太麻烦还需考虑不同系统). 想要手机端h5播放时不自动全屏比想象的简单,看加粗部分,一

mui开发:苹果手机自动全屏解决方案

前一段时间,使用mui写app时,出现了苹果手机播放视频时,自动全屏的情况,并且无法点击控件,只能等到播放完毕后点击控件. 那么怎么解决这个问题呢,弟弟们请看我的下面. 1.在页面的video标签中,添加 playsinline webkit-playsinline x5-playsinline 属性 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <me

网页程序开机启动并自动全屏

网页触摸屏程序的开机自动全屏方法: 开机启动,直接建立一个网页的快捷方式,丢到开机启动文件夹中即可. 主要是如何自动全屏,在网上发现一个十分实用且简单的方法: 以chrome浏览器为例,我们在建立快捷方式时,路劲填写如下即可: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --kiosk C:\Users\你的计算机用户名\Desktop\你的网页名.html 前面为你浏览器的路劲,中间为全屏参数,后面为你的

AxWindowsMediaPlayer播放后自动全屏

常用方法 axWindowsMediaPlayer1.Ctlcontrols.Play 播放 axWindowsMediaPlayer1.Ctlcontrols.Stop 停止 axWindowsMediaPlayer1.Ctlcontrols.Pause 暂停 axWindowsMediaPlayer1.Ctlcontrols.PlayCount 文件播放次数 axWindowsMediaPlayer1.Ctlcontrols.AutoRewind 是否循环播放 axWindowsMediaP