做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網頁制作\03.mp3"。
注:若是想播放按鈕隱藏,則使用以下語句:直接使用css 的display控制audio標簽的顯示