解決移動端瀏覽器 HTML 音頻不能自動播放的三種方法


https://blog.csdn.net/PY0312/article/details/90349386

 

由於Android,IOS移動端的瀏覽器以及微信自帶的瀏覽器為了用戶更好的體驗,規定不自動播放音頻視頻,默認屏蔽了autoplay,如果要想達到自動播放效果,需要單獨處理,方法有以下幾種:

第一種:添加控制屬性(controls)
原理:直接使用行內式添加controls屬性,顯示控制按鈕,讓用戶手動觸發音頻播放
<audio autoplay="autopaly" loop="loop" controls="controls" id="audios">
<source src="music/bg.mp3" type="audio/mp3" />
</audio>
第二種:創建頁面監聽(WeixinJSBridgeReady)
原理:對頁面加載進行監聽,等待微信客戶端頁面加載完畢后,自動觸發音頻播放 
<audio autoplay="autopaly" loop="loop" id="audios">
<source src="music/bg.mp3" type="audio/mp3" />
</audio>

<script>
// 將以下代碼添加到js入口函數內即可
// 這里使用了微信自帶的WeixinJSBridgeReady事件
document.addEventListener('WeixinJSBridgeReady', function() {
document.getElementById('audios').play()
})

</script>
第三種:創建觸摸監聽(touchstart)
原理:當瀏覽器打開頁面時,通過觸摸屏幕事件,來觸發音頻播放 
<audio autoplay="autopaly" loop="loop" id="audios">
<source src="music/bg.mp3" type="audio/mp3" />
</audio>

<script>
// 將以下代碼添加到js入口函數內即可
document.addEventListener('touchstart', function() {
document.getElementById('audios').play()
})

</script>
第四種:綜合以上自定義Func實現交互觸發play() 
不推薦此方法,上面三種方法足以解決日常問題
<audio src="bg.mp3" id="audios" autoplay preload loop="loop"></audio>
<script>
function audioAutoPlay(id){
var audio = document.getElementById(id),
play = function(){
audio.play();
document.removeEventListener("touchstart",play, false);
};
audio.play();
document.addEventListener("WeixinJSBridgeReady", function () {
play();
}, false);
document.addEventListener('YixinJSBridgeReady', function() {
play();
}, false);
document.addEventListener("touchstart",play, false);
}
audioAutoPlay('audios');

</script>
 

https://www.cnblogs.com/viphchok/p/5315031.html

 

圖片加載完成:

https://blog.csdn.net/hbiao68/article/details/52683322

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM