解決ios下的微信頁面背景音樂無法自動播放問題


在做各種html5場景頁面的時候,插入背景音樂是一個很普遍的需求,我們都知道,ios下的safari是無法自動播放音樂的,以至於現在行程一種認知,ios是沒有辦法自動播放媒體資源的,這個認知其實是錯誤的,是有解決方案的,解決方案如下:

解決方案:

audio插入背景音樂:

<audio src="bg.mp3" id="audio"  autoplay preload loop="loop"></audio

代碼怎么解決背景音樂自動播放呢:

其實很簡單就是微信WeixinJSBridgeReady事件。這個是微信自帶提供的事件,測試發現,部分機子微信只要做微信ready后執行播放,就可以實現自動播放了,代碼如下:

<audio src="bg.mp3" id="audio"  autoplay preload loop="loop"></audio

js部分:

  1. function audioAutoPlay(id){  
  2.     var audio = document.getElementById(id);  
  3.     audio.play();  
  4.     document.addEventListener("WeixinJSBridgeReady", function () {  
  5.             audio.play();  
  6.     }, false);  
  7.     document.addEventListener('YixinJSBridgeReady', function() {  
  8.         audio.play();  
  9.     }, false);  
  10. }  
  11. audioAutoPlay('Jaudio'); 

解決了么?

總結:關於音樂自動播放有三種情況:

1:支持audio的autoplay,大部分安卓機子自帶的瀏覽器和微信,部分的ios微信(不用解決)

2:不支持audio的autoplay,部分的ios微信(解決方案以提供)

3:不支持audio的autoplay,部分的安卓機子自帶的瀏覽器(例:小米)和全部的ios Safari(這種只能做用戶觸屏時播放代替自動播放)

根據上面三種情況解決方案如下:

  1. function audioAutoPlay(id){  
  2.     var audio = document.getElementById(id),  
  3.         play = function(){  
  4.             audio.play();  
  5.             document.removeEventListener("touchstart",play, false);  
  6.         };  
  7.     audio.play();  
  8.     document.addEventListener("WeixinJSBridgeReady", function () {  
  9.         play();  
  10.     }, false);  
  11.     document.addEventListener('YixinJSBridgeReady', function() {  
  12.         play();  
  13.     }, false);  
  14.     document.addEventListener("touchstart",play, false);  
  15. }  
  16. audioAutoPlay('Jaudio');  

 


免責聲明!

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



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