网页制作 
首页 > 网页制作 > 浏览文章

一个不错的html视频播放器兼容主流浏览器

(编辑:jimmy 日期: 2024/11/16 浏览:3 次 )
最近工作上的需求需要对移动客户端上发送的视频在网页上播放,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这里提供了一种解决方法:

复制代码代码如下:
<video width="320" height="240" controls="controls">
<source src="/UploadFiles/2021-03-30/movie.mp4"><source src="movie.ogg"><source src="movie.webm"><object data="movie.mp4" width="320" height="240">
<embed src="movie.swf"></object>
</video>

目测这种方式应该可以兼容一大部分情况了。

可是我们无法阻止用户上传的视频格式,也无法左右用户使用的浏览器类型,而且用户只会上传一种视频格式,但是各个浏览支持的视频的格式不一致(万恶的浏览器。。),基于此种想法,要是有一个可以兼容所有浏览器所有视频格式而又外表美观可控性强的插件该多好啊。理想是美好的现实是骨感的。不过通过长时间的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 = '<video src="/UploadFiles/2021-03-30/'+s+'">_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://www.apple.com/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="autoplay" value="false">';
_html += '<param name="target" value="myself">';
_html += '<param name="bgcolor" value="black">';
_html += '<param name="pluginspage" value="http://www.apple.com/quicktime/download/index.html">';
_html += '<embed src="/UploadFiles/2021-03-30/'+s+'">_html += '</object>';
$(o).css({"width":w+'px', 'height':h+'px', 'cursor':'default'});
$(o).html(_html);
}
}
上一篇:CSS3 Media Queries详细介绍和使用实例
下一篇:设置网站二级导航及把二级导航做的好看
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。