ios微信h5音頻audio沒法自動播放

iPhone手機音頻、視頻沒法自動播放?

經過下面的方式能夠解決,在iPhone手機微信中正常自動播放。

必須在微信Weixin JSAPI的WeixinJSBridgeReady才能生效,猜想微信接口作了處理~web

測試了90%的iPhone機型,大部分直接調用audio的play方法就能夠自動播放了,可是一些奇葩iPhone機不能夠api

<audio preload="preload" controls id="audio" src="audio.mp3" loop></audio>
<video id="video" controls="" preload="none" mediagroup="myVideoGroup" poster="video.png">
      <source id="mp4" src="video.mp4" type="video/mp4">
      <source id="webm" src="video.webm" type="video/webm">
      <source id="ogv" src="video.ogv" type="video/ogg">
      <p>您的瀏覽器不支持</p>
</video>
<!-- 必須加在微信api資源 -->
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
     //通常狀況下,這樣就能夠自動播放了,可是一些奇葩iPhone機不能夠
     document.getElementById('car_audio').play();
    //必須在微信Weixin JSAPI的WeixinJSBridgeReady才能生效
    document.addEventListener("WeixinJSBridgeReady", function () {
        document.getElementById('audio').play();
        document.getElementById('video').play();
    }, false);
</script>

 

最近又發現一個問題,Android不能同時播放兩個音頻? @李猜猜回答:由於ready只會觸發一次,因此不能播放多個音頻。可是若是須要播放多個音頻,其實只要調用一下eixinJSBridge進行包裹便可。 示例代碼以下瀏覽器

function playAudio() {
    if (setting.autoplay) {
        if (window.WeixinJSBridge) {
            WeixinJSBridge.invoke('getNetworkType', {}, function (e) {
                audio.play();
            }, false);
        } else {
            document.addEventListener("WeixinJSBridgeReady", function () {
                WeixinJSBridge.invoke('getNetworkType', {}, function (e) {
                    audio.play();
                });
            }, false);
        }
        audio.play();
    } else {
        audio.pause();
    }
    return false;
}
相關文章
相關標籤/搜索