在最新版chrome和ios等部分瀏覽器的限制下挟憔,不允許js調(diào)用play()自動(dòng)播放聲音,并且可能頁(yè)面處于后臺(tái)需要暫停音樂(lè)烟号,原生實(shí)現(xiàn)較麻煩绊谭,所以這里引入layabox的聲音管理API實(shí)現(xiàn)
新建LayaSoundManager.js
/**初始化并播放背景音樂(lè) */
export const init = () => {
const script = document.createElement('script')
script.src = 'https://xxxx.com/public/laya.core.min.js' //引入api庫(kù)js
script.async = 'async'
document.body.appendChild(script)
script.onload = () => {
if (window.Laya) {
window.Laya.init(0, 0)
window.Laya.SoundManager.musicMuted = false //背景音樂(lè)是否靜音
window.Laya.SoundManager.setMusicVolume(0.3) //設(shè)置背景音樂(lè)音量
window.Laya.SoundManager.setSoundVolume(0.3) //設(shè)置音效音量
window.Laya.SoundManager.playMusic(bgMusic, 0) //設(shè)置背景音樂(lè)音源 第二個(gè)參數(shù)為循環(huán)次數(shù),0是循環(huán)播放
}
}
}
/**播放音效
* @param musicUrl 音源
* @param loops 執(zhí)行次數(shù) 0為循環(huán)播放
*/
export const playSound = (musicUrl, loops = 1) => {
window.Laya && window.Laya.SoundManager.playSound(musicUrl, loops)
}
控制音樂(lè)開(kāi)關(guān)只需要設(shè)置 window.Laya.SoundManager.musicMuted
值為true
/false