三好技巧网

在网页中插入可在线播放的音乐的方法:利用系统自带的WMPlayer.OCX控件

时间:2014-03-03 10:26来源:未知 作者:admin 点击:

在支持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来做播放器会更好一些,至少比这个组件安全,虽然要偷懒的话直接使用这个就可以了。

顶一下
(0)
0%
踩一下
(1)
100%

相关技巧
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
栏目列表
推荐技巧
无觅相关文章插件,快速提升流量