egret iOS微信瀏覽器默認不播放背景音樂
最近在做一個小專案,用的是egret+微信瀏覽器環境,在安卓上運行沒有任何問題,但是到了萬惡的蘋果上不行了,立馬有問題了,BGM不能自動播放,查了一下發現是IOS系統為了節省用戶的流量,禁止了audio標簽的自動播放,哈哈哈,特么的,對用戶真是太貼心了(不得不吐槽一下,都已經用上蘋果了,還會在乎那幾個流量費?),本不想改了,但是這時候萬惡的產品經理說,不行,這個必須要能自動播放,沒辦法,人在屋檐下不得不低頭,百度一通,找到一個,一試還真行,在這里貼出來記錄一下,
1.首先要在index.html這個檔案里添加一個函式用于引導播放:
function playsound(sound, loop) {
if (sound == null) {
console.log('sound err')
return;
}
var times = loop ? 0 : 1;
if (typeof WeixinJSBridge != 'undefined') {
WeixinJSBridge.invoke('getNetworkType', {}, function (e) {
return sound.play(0, times).volume = 0;
});
} else {
return sound.play(0, times).volume = 0;
}
}
2.第二步在自己的聲音管理單例里邊添加一個方法,用于播放靜音引導,使用的就是第一步的引導函式:
public playNullSound() {
let nullSound: egret.Sound = RES.getRes("yindao_mp3");
window["playsound"](nullSound, false);
}
3.第三步在需要播放音樂地方先用上面的函式播放一段靜音引導,然后再設定一個setTimeOut延遲播放正確的音樂,具體如下:
SoundManager.getInstance().playNullSound();
egret.setTimeout(()=>{
SoundManager.getInstance().playBgm('BGM_mp3');
}, this, 200);
注意事項:
1.需要用到的聲音資源需要預加載,否則無法通過RES.getRes()獲取,
2.playBgm具體就不寫了,官方檔案都有,很簡單,
參考:
https://www.cnblogs.com/mieQ/p/7614061.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/179655.html
標籤:AI
上一篇:2020第11屆藍橋杯C++B組(不確保答案正確性,僅供參考)藍橋2020試題 A: 門牌制作
下一篇:P2258 子矩陣
