使用layabox引擎API控制背景音乐及音效的自动播放

在最新版chrome和ios等部分浏览器的限制下,不允许js调用play()自动播放声音,并且可能页面处于后台需要暂停音乐,原生实现较麻烦,所以这里引入layabox的声音管理API实现

新建LayaSoundManager.js

/**初始化并播放背景音乐 */
export const init = () => {
  const script = document.createElement('script')
  script.src = 'https://xxxx.com/public/laya.core.min.js' //引入api库js
  script.async = 'async'
  document.body.appendChild(script)
  script.onload = () => {
    if (window.Laya) {
      window.Laya.init(0, 0)
      window.Laya.SoundManager.musicMuted = false //背景音乐是否静音
      window.Laya.SoundManager.setMusicVolume(0.3) //设置背景音乐音量
      window.Laya.SoundManager.setSoundVolume(0.3) //设置音效音量
      window.Laya.SoundManager.playMusic(bgMusic, 0) //设置背景音乐音源  第二个参数为循环次数,0是循环播放
    }
  }
}

/**播放音效
 * @param musicUrl 音源
 * @param loops 执行次数  0为循环播放
 */
export const playSound = (musicUrl, loops = 1) => {
  window.Laya && window.Laya.SoundManager.playSound(musicUrl, loops)
}

控制音乐开关只需要设置 window.Laya.SoundManager.musicMuted 值为true/false

详细API说明请参阅官方文档

https://layaair2.ldc2.layabox.com/api2/Chinese/index.html?category=Core&class=laya.media.SoundManager

你可能感兴趣的:(使用layabox引擎API控制背景音乐及音效的自动播放)