iPhone手機音頻、視頻無法自動播放?
通過下面的方式可以解決,在iPhone手機微信中正常自動播放。
必須在微信Weixin JSAPI的WeixinJSBridgeReady才能生效,猜測微信接口做了處理~
測試了90%的iPhone機型,大部分直接調用audio的play方法就可以自動播放了,但是一些奇葩iPhone機不可以
<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; }
