一、注意点
1、由于浏览器兼容问题,在IE浏览器里面应该使用<embed/>标签,在非IE浏览器里面应该使用<audio/>标签,否则播放不了声音。
2、无论上面哪种标签,其src属性都不支持本地路径,应该使用http地址进行赋值。
3、针对音频文件名或音频文件路径中存在中文时播放不了声音的问题,其原因是tomcat配置文件中编码问题,即,需要在server.xml文件中的<Connector>标签中设置URIEnconding="utf-8"。
4、当文件名中包含特殊符号时(例如包含单引号:What if you don't want me to find one another-20161129225909.wav),在对src进行赋值时,得注意一些技巧,例如:
var strEmbed = '<audio autoplay="autoplay"><source src="What if you don't want me to find one another-20161129225909.wav" type="audio/wav"/></audio>';
$("#audioPlayDiv").html(strEmbed);
即,应该在最外层使用单引号,而里面的属性值使用双引号。反之则无法播放。
二、示例
js:
var audioPath = "http://xxxx";
if(isIE()){
var strEmbed = '<embed name="embedPlayTest" src="'+audioPath+'" autostart="true" hidden="false" loop="false"></embed>';
$("#audioPlayDiv").html(strEmbed);
var embed = document.embedPlayTest;
//embed.volume = 100;
embed.play();
}else{
var strEmbed = '<audio autoplay="autoplay"><source src="'+audioPath+'" type="audio/wav"/></audio>';
$("#audioPlayDiv").html(strEmbed);
}
页面:
<div id="audioPlayDiv" style="display:none;"></div>