做H5页面时需要添加背景音乐,方法如下
方式一:<video controls="" autoplay="" name="media"><source src="音乐" type="audio/mpeg"></video>
这种方式显示播放器。
方式二:<embed src="music/We Don't Talk Anymore.mp3" autostart="true" loop="true" hidden="true"></embed>
这个方式主要是支持的播放器多。一定程度上解决了浏览器兼容的问题。
方式三:<audio autoplay="" loop=""><source src="http://mi.0w0.im/Letter_Song.mp3"></audio>
这个不显示播放器。<audio>标签默认是隐藏的。
补充:
问题1:苹果手机Safari和微信不播放音乐问题:
用<audio> 加进去后用微信(iOS系统)浏览页面没有自动播放,点击暂停后再次点击播放正常,这就说明播放功能没有问题,将页面用iOS自带浏览器Safari打开后也不能自动播放;用android手机打开页面可以自动播放,那就证明代码本身是没有问题的,随后查了相关文献,是因为iOS Safari 限制不允许 audio autoplay, 必须用户主动交互(例如 click)后才能播放 audio, 因此我们通过一个用户交互事件来主动play一下audio应该就可以解决问题了。
微信解决办法:
1、利用微信提供的接口:wx.config 和 wx.ready
先引入js文件
<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
在页面添加以下代码
wx.config({
debug : false, // 这里为false
appId : '', // 以下随意填写即可
timestamp : (new Date()).getTime(),
nonceStr : '',
signature : '',
jsApiList : ['checkJsApi']
});
wx.ready(function() {
audio.play();
})
2:WeixinJSBridgeReady,对就这个东东可以搞定这个问题
代码如下:
var audo = document.getElementById('myAudio');
audo.play();
document.addEventListener('WeixinJSBridgeReady', function() {
audo.play();
}, false);
问题2 $("#audio").play()报错 not a function
报错原因:play()方法属于DOM对象方法,$('#audio')为jquery对象
解决办法:将jquery对象转换为DOM对象
或者直接用原生方法写:document.getElementById('music-audio').play();
方式四:<bgsound src=背景音乐链接地址 loop=-1>
方式五:<audio src="music/We Don't Talk Anymore.mp3" id="aud" autoplay="autoplay" controls="controls" preload="auto"></audio>
说明:
1、使用autoplay="autoplay",则背景音乐将在音网页打开后就自动马上播放。
2、使用controls="controls",则为了在页面内显示显示控件,如播放按钮。
3、使用"loop="loop",则是为了是背景音乐重复播放。
4、使用preload="auto",则音频在页面加载的同时进行加载,并预备播放。
5、使用src="",即是在""内加入背景音乐的保存路径,如:src="web网页制作 3.mp3"。
注:若是想播放按钮隐藏,则使用以下语句:直接使用css 的display控制audio标签的显示