解決在微信中部分IOS不能自動播放背景音樂


前言
在做各種HTML5場景頁面的時候,插入背景音樂是一個很普遍的需求。我們都知道,IOS下的safari是無法自動播放音樂的,以至一直以來造成一種錯誤的認識,iso是無法自動播放媒體資源的。直到微信火爆起來,我們發現IOS的微信里面打開的頁面卻可以實現自動播放。這種情況顛覆了我之前的認知。但是,但是。。。最近的項目,又發現了一個頭疼的問題。部分的IOS微信,打開有自動播放背景音樂的頁面沒有聲音!!最頭疼的是同款機子,相同的IOS系統,相同的微信版本!!沒錯,前端就是要經常這么折騰的,同一個問題,你以為找到了最終的解決方案,但是各種瀏覽器更新快速,昨天沒問題,也許今天就有問題了。還好,這個問題暫時找到原因了,詳情請看下文。

先看下平時使用audio標簽插入背景音樂的代碼:

<audio id="Jaudio" class="media-audio" src="bg.mp3" autoplay preload loop="loop"></audio >

正常來說,上面的寫法在安卓和大部分IOS機子的微信是可以播放的(safari這里就忽略討論)

如果不能播放, 使用微信的WeixinJSBridgeReady事件。這個是微信自帶提供的事件,測試發現,上面說的少部分的機子微信只要做微信ready后執行播放,就可以用代碼實現自動播放功能了!

function audioAutoPlay(id){
    var audio = document.getElementById(id);
    audio.play();
    document.addEventListener("WeixinJSBridgeReady", function () {
            audio.play();
    }, false);
}
audioAutoPlay('Jaudio');

總結下
關於音樂自動播放的問題,現在可以分為三種:
1-支持audio的autoplay,大部分安卓機子的自帶瀏覽器和微信,大部分的IOS微信(無需特殊解決)
2-不支持audio的autoplay,部分的IOS微信(本文提供的解決方案)
3-不支持audio的autoplay,部分的安卓機子的自帶瀏覽器(比如小米,開始模仿safari)和全部的ios safari(這種只能做用戶觸屏時就觸發播放了)

經測試iphone6上的6.5.4版本微信還是支持以上方式

 


免責聲明!

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



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