一个不错的html视频播放器兼容主流浏览器
建站知识 2021-07-03 08:15www.168986.cn长沙网站建设
最近工作上的需求需要对移动客户端上发送的视频在网页上播放,and 上传视频并在网页上播放(例如上传教学视频或者动态分享等)(博主碎碎念移动客户端上传的你不会用手机的播放器看啊,网页上上传你不会上传到youku或者youtube等各大知名网站上上传然后在自己的网站上直接引用链接啊,还不占服务器带宽,经济又实惠有木有!!!)。
多媒体的上传和一般的文件上传也没什么区别,这边就不多加赘述了,不了解的可以到http://.w3school../php/php_file_upload.asp这边了解一下。
视频截图是在服务端做的,还是使用ffmpeg,目前还是很稳定。
开始的时候想仿照下youku这种专业的视频网站,发现他们都是flash实现的,可是博主对flash七窍通了六窍--一窍不通(呵呵呵呵。。),再加上貌似youtube都开始其他尝试了,所以果断就放弃在这方面的探索。
在投入google的怀抱半天后,终于赶脚貌似html5的video标签是个好东西,可惜就是兼容性差了点,不过html5毕竟是趋势,所以果断还是在这方面下功夫了。(博主碎碎念播放一个视频只要一个标签就全搞定了,不用他以为我傻啊。。呵呵呵呵)
花费了1个小时的搜索,发现在http://.w3school../html/html_video.asp这里提供了一种解决方法
<video width="320" height="240" controls="controls">
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
<source src="movie.webm" type="video/webm" />
<object data="movie.mp4" width="320" height="240">
<embed src="movie.swf" width="320" height="240" />
</object>
</video>
目测这种方式应该可以兼容一大部分情况了。
可是我们无法阻止用户上传的视频格式,也无法左右用户使用的浏览器类型,而且用户只会上传一种视频格式,各个浏览支持的视频的格式不一致(万恶的浏览器。。),基于此种想法,要是有一个可以兼容所有浏览器所有视频格式而又外表美观可控性强的插件该多好啊。理想是美好的现实是骨感的。不过通过长时间的google还是发现了一个可以让主流浏览器兼容vedio标签的js插件http://html5media.googlecode./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./svn/trunk/src/html5media.min.js');
_doc.appendChild(script);
script.onload=script.onreadystatechange=function(){
if(!this.readyState||this.readyState=='loaded'||this.readyState=='plete'){
_html = '<video src="'+s+'" width="'+w+'" height="'+h+'" controls autobuffer >';
_html += '</video>';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
script.onload=script.onreadystatechange=null;
}
}else{ //other like 3gp
_html += '<object width="'+w+'" height="'+h+'" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://.apple./qtactivex/qtplugin.cab">';
_html += '<param name="src" value="'+s+'">';
_html += '<param name="controller" value="true">';
_html += '<param name="type" value="video/quicktime">';
_html += '<param name="aulay" value="false">';
_html += '<param name="target" value="myself">';
_html += '<param name="bgcolor" value="black">';
_html += '<param name="pluginspage" value="http://.apple./quicktime/download/index.html">';
_html += '<embed src="'+s+'" width="'+w+'" height="'+h+'" controller="true" aulay="false" align="middle" bgcolor="black" target="myself" type="video/quicktime" pluginspage="http://.apple./quicktime/download/index.html"></embed>';
_html += '</object>';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
}
多媒体的上传和一般的文件上传也没什么区别,这边就不多加赘述了,不了解的可以到http://.w3school../php/php_file_upload.asp这边了解一下。
视频截图是在服务端做的,还是使用ffmpeg,目前还是很稳定。
开始的时候想仿照下youku这种专业的视频网站,发现他们都是flash实现的,可是博主对flash七窍通了六窍--一窍不通(呵呵呵呵。。),再加上貌似youtube都开始其他尝试了,所以果断就放弃在这方面的探索。
在投入google的怀抱半天后,终于赶脚貌似html5的video标签是个好东西,可惜就是兼容性差了点,不过html5毕竟是趋势,所以果断还是在这方面下功夫了。(博主碎碎念播放一个视频只要一个标签就全搞定了,不用他以为我傻啊。。呵呵呵呵)
花费了1个小时的搜索,发现在http://.w3school../html/html_video.asp这里提供了一种解决方法
复制代码
代码如下:<video width="320" height="240" controls="controls">
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
<source src="movie.webm" type="video/webm" />
<object data="movie.mp4" width="320" height="240">
<embed src="movie.swf" width="320" height="240" />
</object>
</video>
目测这种方式应该可以兼容一大部分情况了。
可是我们无法阻止用户上传的视频格式,也无法左右用户使用的浏览器类型,而且用户只会上传一种视频格式,各个浏览支持的视频的格式不一致(万恶的浏览器。。),基于此种想法,要是有一个可以兼容所有浏览器所有视频格式而又外表美观可控性强的插件该多好啊。理想是美好的现实是骨感的。不过通过长时间的google还是发现了一个可以让主流浏览器兼容vedio标签的js插件http://html5media.googlecode./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./svn/trunk/src/html5media.min.js');
_doc.appendChild(script);
script.onload=script.onreadystatechange=function(){
if(!this.readyState||this.readyState=='loaded'||this.readyState=='plete'){
_html = '<video src="'+s+'" width="'+w+'" height="'+h+'" controls autobuffer >';
_html += '</video>';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
script.onload=script.onreadystatechange=null;
}
}else{ //other like 3gp
_html += '<object width="'+w+'" height="'+h+'" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://.apple./qtactivex/qtplugin.cab">';
_html += '<param name="src" value="'+s+'">';
_html += '<param name="controller" value="true">';
_html += '<param name="type" value="video/quicktime">';
_html += '<param name="aulay" value="false">';
_html += '<param name="target" value="myself">';
_html += '<param name="bgcolor" value="black">';
_html += '<param name="pluginspage" value="http://.apple./quicktime/download/index.html">';
_html += '<embed src="'+s+'" width="'+w+'" height="'+h+'" controller="true" aulay="false" align="middle" bgcolor="black" target="myself" type="video/quicktime" pluginspage="http://.apple./quicktime/download/index.html"></embed>';
_html += '</object>';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
}
长沙网站设计
- 如何进行东阳SEO关键词优化?
- 边坝哪有关键词排名优化:提升你的网站流量与
- 安国百度优化服务:提升您的在线可见性
- 阜康新手做SEO怎么做
- 山西seo网站排名关键词优化:提升您网站曝光率
- 临沂seo网站排名关键词优化:提高你的网站可见
- 广西SEO网站推广怎样付费比较合理
- 双辽SEO网站推广:提升你的网站可见性与流量
- 辽宁企业网站优化购买方式有哪些
- 提升宝清百度SEO排名的实用技巧与策略
- 静宁百度SEO排名:提升您网站曝光率的关键策略
- 彭州百度SEO排名的提升策略和实施指南
- 广南百度关键词SEO:提升网站排名的关键策略
- 辽宁关键词优化怎么做论坛营销
- 吉林百度seo排名如何做到让用户满意
- 内黄百度优化服务:提升在线可见性的关键