轉至: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!
有發現更有效的方法,或者無效機型,歡迎留言!
