您现在的位置是:网站首页> 编程资料编程资料
一个不错的html视频播放器兼容主流浏览器实现简易html视频播放器的方法
2021-09-06
949人已围观
简介 html5的video标签是个好东西,可惜就是兼容性差了点,不过html5毕竟是趋势,所以果断还是在这方面下功夫了,下面将解决方法与大家分享下
最近工作上的需求需要对移动客户端上发送的视频在网页上播放,and 上传视频并在网页上播放(例如上传教学视频或者动态分享等)(博主碎碎念:移动客户端上传的你不会用手机的播放器看啊,网页上上传你不会上传到youku或者youtube等各大知名网站上上传然后在自己的网站上直接引用链接啊,还不占服务器带宽,经济又实惠有木有!!!)。
多媒体的上传和一般的文件上传也没什么区别,这边就不多加赘述了,不了解的可以到http://www.w3school.com.cn/php/php_file_upload.asp这边了解一下。
视频截图是在服务端做的,还是使用ffmpeg,目前还是很稳定。
开始的时候想仿照下youku这种专业的视频网站,发现他们都是flash实现的,可是博主对flash七窍通了六窍--一窍不通(呵呵呵呵。。),再加上貌似youtube都开始其他尝试了,所以果断就放弃在这方面的探索。
在投入google的怀抱半天后,终于赶脚貌似html5的video标签是个好东西,可惜就是兼容性差了点,不过html5毕竟是趋势,所以果断还是在这方面下功夫了。(博主碎碎念:播放一个视频只要一个标签就全搞定了,不用他以为我傻啊。。呵呵呵呵)
花费了1个小时的搜索,发现在http://www.w3school.com.cn/html/html_video.asp这里提供了一种解决方法:
目测这种方式应该可以兼容一大部分情况了。
可是我们无法阻止用户上传的视频格式,也无法左右用户使用的浏览器类型,而且用户只会上传一种视频格式,但是各个浏览支持的视频的格式不一致(万恶的浏览器。。),基于此种想法,要是有一个可以兼容所有浏览器所有视频格式而又外表美观可控性强的插件该多好啊。理想是美好的现实是骨感的。不过通过长时间的google还是发现了一个可以让主流浏览器兼容vedio标签的js插件http://html5media.googlecode.com/svn/trunk/src/html5media.min.js。
在web上播放视频还可以使用两种方式 内联视频(借助img标签,好奇怪只有ie支持这种模式而且一般不开启) 和 使用助手。所以我们可以借助一些助手来实现上面不支持的类型视频文件的播放(例如:quicktime)
综合以上两点的视频播放代码如下:
function showVideo(o,s,w, h, t){ //t文件格式
var _html = '';
if($.inArray(t, ['ogg', 'mp4', 'webm']) >= 0){ //html5 surport
var _doc=document.getElementsByTagName('head')[0];
var script=document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('src','http://html5media.googlecode.com/svn/trunk/src/html5media.min.js');
_doc.appendChild(script);
script.onload=script.onreadystatechange=function(){
if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){
_html = '';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
script.onload=script.onreadystatechange=null;
}
}else{ //other like 3gp
_html += '';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
}
多媒体的上传和一般的文件上传也没什么区别,这边就不多加赘述了,不了解的可以到http://www.w3school.com.cn/php/php_file_upload.asp这边了解一下。
视频截图是在服务端做的,还是使用ffmpeg,目前还是很稳定。
开始的时候想仿照下youku这种专业的视频网站,发现他们都是flash实现的,可是博主对flash七窍通了六窍--一窍不通(呵呵呵呵。。),再加上貌似youtube都开始其他尝试了,所以果断就放弃在这方面的探索。
在投入google的怀抱半天后,终于赶脚貌似html5的video标签是个好东西,可惜就是兼容性差了点,不过html5毕竟是趋势,所以果断还是在这方面下功夫了。(博主碎碎念:播放一个视频只要一个标签就全搞定了,不用他以为我傻啊。。呵呵呵呵)
花费了1个小时的搜索,发现在http://www.w3school.com.cn/html/html_video.asp这里提供了一种解决方法:
复制代码
代码如下:目测这种方式应该可以兼容一大部分情况了。
可是我们无法阻止用户上传的视频格式,也无法左右用户使用的浏览器类型,而且用户只会上传一种视频格式,但是各个浏览支持的视频的格式不一致(万恶的浏览器。。),基于此种想法,要是有一个可以兼容所有浏览器所有视频格式而又外表美观可控性强的插件该多好啊。理想是美好的现实是骨感的。不过通过长时间的google还是发现了一个可以让主流浏览器兼容vedio标签的js插件http://html5media.googlecode.com/svn/trunk/src/html5media.min.js。
在web上播放视频还可以使用两种方式 内联视频(借助img标签,好奇怪只有ie支持这种模式而且一般不开启) 和 使用助手。所以我们可以借助一些助手来实现上面不支持的类型视频文件的播放(例如:quicktime)
综合以上两点的视频播放代码如下:
复制代码
代码如下:function showVideo(o,s,w, h, t){ //t文件格式
var _html = '';
if($.inArray(t, ['ogg', 'mp4', 'webm']) >= 0){ //html5 surport
var _doc=document.getElementsByTagName('head')[0];
var script=document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('src','http://html5media.googlecode.com/svn/trunk/src/html5media.min.js');
_doc.appendChild(script);
script.onload=script.onreadystatechange=function(){
if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){
_html = '';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
script.onload=script.onreadystatechange=null;
}
}else{ //other like 3gp
_html += '';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
}
相关内容
- 设置网站二级导航及把二级导航做的好看设置div背景透明的方法示例CSS实现div不设高度完全居中div自适应高度自动填充剩余高度详解DIV+CSS的命名规矩才能有利于SEO优化的实现方法DIV或者DIV里面的图片水平与垂直居中的方法详解如何用div实现自制滚动条div对齐与网页布局详解DIV+CSS实现电台列表设计的示例代码div+css实现带箭头的面包屑导航栏不定宽高的文字在div中垂直居中实现方法
- css及js调用方法详细汇总CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- css行内元素padding,margin,width,height没有变化CSS中height和width在IE和其他浏览器中的区别图文详解IE6不支持CSS中的min-width/height属性问题的解决方法
- 使用css3实现超炫的loading加载动画效果详解纯CSS3制作的20种loading动效CSS3实现10种Loading效果 CSS3轻松实现清新 Loading 效果的简单实例使用CSS3制作饼状旋转载入效果的实例浅析与CSS3的loading动画加载相关的transition优化8款使用 CSS3 实现超炫的 Loading(加载)的动画效果纯CSS3实现的8种Loading动画效果css3如何绘制一个圆圆的loading转圈动画
- 任意一块网页内容实现“活”的背景(目前火狐浏览器专有)css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- 纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)CSS制作梦幻彩虹效果CSS制作各种样式的彩虹效果
- 纯CSS3实现给头像加个光芒四射且旋转的背景动画效果CSS3基于背景裁剪(background-clip)实现的文本标题透视特效源码CSS3+SVG镂空效果质感背景小图标按钮css实现的鼠标悬停360度背景图片做动画旋转效果css3实现背景图片拉伸效果像桌面壁纸一样纯CSS3实现的(横向和竖向)的花格纹理背景及马赛克效果css3 边框、背景、文本效果的实现代码
- 纯CSS绘制漂亮的圆形图案效果用CSS代码绘制三角形 纯CSS绘制三角形的代码纯CSS3实现绘制各种图形实现代码详细整理纯CSS3绘制的火龙图像动画特效源码纯CSS3绘制的黑色图标按钮组合特效源码使用单div实现CSS 绘图方法汇总
- 纯CSS绘制三角形箭头效果CSS绘制三角形的实现代码(border法)利用css绘制三角形的方法及拓展纯CSS绘制三角形箭头图案技术解析Html+CSS绘制三角形图标css绘制透明三角形用CSS3绘制三角形的简单方法用CSS代码绘制三角形 纯CSS绘制三角形的代码CSS中三角形的绘制与巧妙应用实例详解