2017.09.15更新android 自动播放,无控制条,可以设置层级

请查看 http://www.cnblogs.com/luoeeyang/p/7524824.html

2016.11.10日更新以下方法

微信最新出同层播放规范

即使是官方的也无法解决所有android手机的问题。

另外iphone 5 、5s 某些手机始终会弹出播放,请继续采用 “以下是老的解决办法”

文档下载地址:

http://pan.baidu.com/s/1i5uN9Al

==================================以下是老的解决办法======================================

目前主要问题出现在IP7,IOS10的 视频播放问题:主要表现为  无法播放,黑屏,只有声音

以下做法可以解决以上问题:(safira下也可以内嵌播放)

请熟读以下代码,不要直接拿去就用 (完整文件包下载 在文末)

div  请自行引入jQuery 或zepto

<div id="vdBox" class="abs" style="top:0px;width:640px; height:1040px; overflow:hidden; background:#000;">
<canvas id="vdCvs" class="abs" width="640" height="1040"></canvas>
<video id="vdDom" class="abs" webkit-playsinline muted style="display:none;top:0px;"><source type="video/mp4"></video>
</div>
<button id="pp" class="abs" style="top:480px; width:640px; height:60px; font-size:24px; display:none;" >无法自动播放时出现:点我播放</button>

js

function cvPlayer(_vd,_cvs,_fps,_autoPlay,_src)
{
var _s=this;
var ios,ua=navigator.userAgent.toLowerCase(); _s.play=function()
{
if(ios)
{
_s.vd.load();
_s.ad.play(); inter=setInterval(function()
{
_s.vd.currentTime=_s.ad.currentTime>0.1?_s.ad.currentTime:0.1;
ctx.clearRect(0,0,640,1040);
ctx.drawImage(_s.vd,0,0,640,1040);
if(_s.vd.currentTime>=_s.vd.duration)
{
_s.endF();
}
},1000/_fps);
//IOS无法自动播放
if(_s.ad.paused){$("#pp").css("display","block");}
}
else
{
_s.vd.play();
//Android无法自动播放
if(_s.vd.paused){$("#pp").css("display","block");} else{_s.vd.style.display="block";}
}
$("#vdBox").css("visibility","visible");
}
_s.pause=function()
{
ios?_s.ad.pause():_s.vd.pause();
}
_s.endF=function(e)
{
if(ios)
{
clearInterval(inter);
document.getElementById(_vd).getElementsByTagName("source")[0].setAttribute("src","");
document.getElementById("_cvsAud").remove();
}
else
{
$("#"+_vd).css("display","none");
}
$("#vdBox").css("visibility","hidden"); alert("end")
} if(ua.indexOf("android")>=0||ua.indexOf("mobile")<0)
{
$("#"+_vd).attr("src",_src+"_l.mp4")
$("#"+_vd).css({"width":640,"height":1210}) _s.vd=document.getElementById(_vd);
_s.vd.addEventListener("ended",_s.endF) ;
}
else
{
document.getElementById(_vd).getElementsByTagName("source")[0].setAttribute("src",_src+".mp4")
_s.vd=document.getElementById(_vd);
_s.ad=document.createElement('audio');
_s.ad.setAttribute("id","_cvsAud");
_s.ad.innerHTML = _s.vd.innerHTML;
_s.vd.parentNode.insertBefore(_s.ad, _s.vd);
_s.vd.currentTime=0.1
var inter;
var ctx=document.getElementById(_cvs).getContext("2d")
ios=true;
} _autoPlay?_s.play():null return this;
}

  

代码包:(包里的视频压缩比较大有点糊)

http://pan.baidu.com/s/1o7ZCrQ6

不保证哪天微信更新或系统更新后又失效。如果有问题,请留言

最新文章

  1. CRL快速开发框架系列教程二(基于Lambda表达式查询)
  2. linux系统安装(下)
  3. 【转】查看java类是从哪个包加载
  4. CentOS 7虚拟机下模拟实现nginx负载均衡
  5. 在dreamweaver中输入代码时不会有提示的解决办法
  6. MySQL Connector_J_5.1.34_2014.10
  7. LintCode-Compare Strings
  8. Android模拟器Genymotion安装向导
  9. jquery如何在加载完iframe的内容后才进行下一步操作
  10. Linux IP代理筛选系统(shell+proxy)
  11. MyBatis 3 与 Spring 4 整合关键
  12. S表示1,L表示2,计算由S和L组成的序列之和为N的组合
  13. OpenCL 矩阵乘法
  14. ----关于统计字符出现次数的JS循环以及indesxOf函数----
  15. nginx unit的初探
  16. 第十九节:Java基本数据类型,循环结构与分支循环
  17. Python 正则 re.sub替换
  18. 将oh-my-zsh编程真正的my zsh
  19. 移动App 的 ios11 和 iPhoneX 适配
  20. 数据结构&amp;算法(一)_堆、栈(堆栈)、队列、链表

热门文章

  1. react lazyload
  2. Mybatis传多个参数(三种解决方案)
  3. 用mac系统制作mac系统启动盘
  4. html 关键字设定
  5. iOS8 关于预编译文件.pch的改变
  6. Linux 下 PHP 扩展 cURL 编译安装
  7. YbSoftwareFactory 代码生成插件【二十五】:Razor视图中以全局方式调用后台方法输出页面代码的三种方法
  8. linux 时间管理——概念、注意点(一)【转】
  9. Java数据结构之字符串模式匹配算法---Brute-Force算法
  10. MYSQL中replace into的用法