在支持HTML5的浏览器中通常使用AUDIO元素来播放声音,但要是都能用HTML5也还好,关键是要做低版本IE的兼容时,就不得不改用传统的ActiveXObject来实现,其实这个方法也适合用于高版本IE,至少IE对它的支持比对HTML5的支持要正常一些。
微软总是在做一些奇怪的让人猜不透的事情,IE的AUDIO元素居然不能兼容微软自己的WAV格式,其它浏览器却反而都支持。IE的AUDIO元素对媒体格式的支持实在是太非主流了,所以即使是IE9+,HTML5有时候反而不如古老的ActiveXObject好用。
我们可以用WMPlayer.OCX这个控件来播放声音,它在windows中是默认安装默认启用的,所以直接创建它就行。但是存在一个WMP控件强制弹窗漏洞,所以它可能被杀毒软件干掉。不过只是用来播放声音的话应该是没什么问题的。
var wmp=new ActiveXObject("WMPlayer.OCX");
wmp.settings.volume=100; //音量,其实不设置也可以,默认50%
document.onclick=function(){
//给url赋值时就会播放,因为autoStart默认设置为true
wmp.url="http://www.web-tinker.com/images/coin.wav";
};
这样在点击文档时就能播放声音了,但是这个控件还有一个非常纠结的URL问题。这里直接使用了绝对路径,所以看不出有什么问题。但是如果使用相对路径就很纠结,因为它并不相对于页面,而是相对于网站根目录,并且不以“/”开头。正常以网站根目录开始的路径都需要以“/”开头吧,但是这个相对URL如果使用这个开头就反而无法找到。
比如页面和资源文件是这样的目录结构存放的
http://域名/test/test.html
http://域名/test/test.wav
这时url不能直接用同目录的写法也不能用根目录的写法
wmp.url="test.wav"; //无法解析
wmp.url="/test/test.wav"; //无法解析
必须用根目录相对路径或者直接使用完整URL。
wmp.url="test/test.wav"; //正常解析
wmp.url="http://域名/test/test.wav"; //正常解析
这个URL问题是它最纠结的问题,这个问题解决了剩下的就是基本设置,那就没啥可说的了。其实我觉得对IE用Flash来做播放器会更好一些,至少比这个组件安全,虽然要偷懒的话直接使用这个就可以了。
日期:2015年04月13日
标签: 广州网站设计公司 、 广州网站设计 、 广州网站建设公司 、 广州网站建设 、 广州网站制作公司 、 广州网站制作 、 高端网站设计 、 高端网站建设 、 广州高端网站设计 、 广州高端网站建设