轉至:http://www.ipastimes.com/post/52.html
HTML5音頻播放在移動端有局限性,在移動版 Safari 中加載的頁面上,不能自動播放音頻文件。音頻文件只能從用戶觸發的觸摸(單擊)事件加載。如果在 HTML 標記中使用了 autoplay 屬性,那么移動版 Safari 將會忽略這個屬性,並且不會在加載頁面時播放此文件,避免移動端流量在不知不覺中浪費,很人性化的設計。但對HTML5應用開發者來說,這不是個好消息。
網上查找了很多資料,通過hack手段來實現自動播放是不可能的,幸運的是,我們大多數情況下是依賴微信瀏覽器的。這里有個方法貌似可行:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>Audio auto play in mobile</title> <script src="jquery-1.10.2.min.js"></script> </head> <body> <audio preload="preload" id="car_audio" src="music.mp3" loop=""></audio> <script> setTimeout(function(){ $(window).scrollTop(1); },0); /*音樂*/ var audio = $('#car_audio'); var isPlaying = false; function playAudio() { var audio = $('#car_audio'); if (audio.attr('src') == undefined) { audio.attr('src', audio.data('src')); } audio[0].play(); isPlaying = true; } $(function(){ playAudio(); document.addEventListener("WeixinJSBridgeReady", function () { WeixinJSBridge.invoke('getNetworkType', {}, function (e) { network = e.err_msg.split(":")[1]; //結果在這里 playAudio(); }); }, false); }) </script> </body> </html>
強調一下,只適用於微信瀏覽器。
測試環境:iPhone 6 ios 8.3
測試時發現的問題:如果mp3文件過大(大於2M),有可能不會自動播放, 又換了300KB的,測試OK!
有發現更有效的方法,或者無效機型,歡迎留言!