靠谱的软件下载站
当前位置:  IEfans/IE专区/IE相关/IE中使用WMP控件播放声音的问题

IE中使用WMP控件播放声音的问题

IE相关 互联网 2014-02-28 阅读(2215)
在支持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来做播放器会更好一些,至少比这个组件安全,虽然要偷懒的话直接使用这个就可以了。

标签:IE控件声音IE Web

Copyright © 1998-2017 www.iefans.net All Rights Reserved 湘ICP备13012168号-17