最近在做手机端上面播放视频的项目,但是在安卓上面,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>

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

  1. video自动全屏播放

    video自动全屏播放 关于Screen.lockOrientation() https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockO ...

  2. 防止微信浏览器video标签全屏的问题

    在微信浏览器里面使用video标签,会自动变成全屏,改成下面就好了,起码可以在video标签之上加入其他元素. <video id="videoID" webkit-play ...

  3. UE4 VR 模式下全屏解决办法

    方法步骤: 1.打开关卡蓝图添加如下代码: 2.设置配置文件在工程目录里面找到 Config 文件夹在里面添加一个配置文件并命名为 DefaultGameUserSettings.ini 把如下内容贴 ...

  4. centOS 自动锁屏 解决办法

    System-->preferences --> Screensaver中 找到 Lock screen when screensaver is active 把前面的钩去掉

  5. 阻止 iPhone 视频自动全屏

    最近一年都在做直播,遭video 全屏的问题困扰了很久.下面将阻止 ios视频自动全屏的办法写出来.添加 playsinline 和 webkit-playsinline="true&quo ...

  6. 微信 vue中使用video.js播放m3u8视频,解决安卓自动全屏的问题。

    最近一个项目中需要在微信中播放m3u8格式的视频,刚开始用了 vue-video-player 这个插件,在IOS手机体验良好,本以为完事了, 结果安卓手机一点播放就自动全屏,心态略崩.查了资料说是安 ...

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

    微信打开h5video视频的时候都会自动全屏播放,有时候影响用户体验 要禁止自动全屏就要加这几个属性 'x5-playsinline':'true', 'webkit-playsinline':'tr ...

  8. X5内核浏览器,video兼容

    使用vue-video-player在移动端微信内置浏览器打开,点击视频自动全屏问题. 参考官方 API 是 H5 同层浏览器的原因,可通过设置video属性来处理. <video-player ...

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

    (一)audio音频标签 <audio src="xxx.mp3"></audio> (二)video视频标签 <video src="xx ...

随机推荐

  1. matlab基本函数strcmp num2str 字符串格式

    一起来学演化计算-matlab基本函数strcmp num2str 字符串格式 觉得有用的话,欢迎一起讨论相互学习~Follow Me strcmp 比较字符串 语法 tf = strcmp(s1,s ...

  2. IIS7(Windows7)下最简单最强安装多版本PHP支持环境

    最近调试程序,要在PHP5.2和5.3之间换来换去,而习惯了windows下的开发,就琢磨怎么在iis下安装多版本支持,赫然发现其实微软都为我们准备了好工具. 微软对PHP的支持越来越强,这点在IIS ...

  3. FastDFS配置详解之Storage配置

    1 基本配置disabled #func:该配置文件是否生效#valu:## true:无效## false:生效disabled=false group_name#func:本storage ser ...

  4. 【嵌入式硬件Esp32】Ubuntu18.04 更换阿里云软件源

    使用Ubuntu 的apt-get来安装软件是总是因为官方源的速度太慢而抓狂. 但是用阿里云的源就很快,下面总结一下如何更换Ubuntu的软件源. 一.备份sudo cp /etc/apt/sourc ...

  5. 【C/C++开发】C中调用C++函数

    C中如何调用C++函数? 前阵子被问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下 ...

  6. circRNA数据库的建立

      circRNA数据库的建立 wget http://circbase.org/download/human_hg19_circRNAs_putative_spliced_sequence.fa.g ...

  7. [bzoj3420]Poi2013 Triumphal arch_树形dp_二分

    Triumphal arch 题目链接:https://lydsy.com/JudgeOnline/problem.php?id=3420 数据范围:略. 题解: 首先,发现$ k $具有单调性,我们 ...

  8. LeetCode 242. 有效的字母异位词(Valid Anagram)

    242. 有效的字母异位词 LeetCode242. Valid Anagram 题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s ...

  9. [WCF] - 访问任意方法耗时长问题之解决

    问题 访问 WCF 任意方法耗时都很长(15s+) 原因 当执行语句 log4net.Config.XmlConfigurator.Configure(); 时需要连接到 log4net 对应的数据库 ...

  10. Spring之25:SingletonBeanRegistry&DefaultSingletonBeanRegistry

    此接口是针对Spring中的单例Bean设计的.提供了统一访问单例Bean的功能,BeanFactory可实现此接口以提供访问内部单例Bean的能力. //将对象(singletonObject)注册 ...