Laya音乐Bug,AudioManager

当在Laya游戏中开启Laya.SoundManager.autoStopMusic并使游戏失焦后,背景音乐和音效暂停,再次播放音乐时会出现失效问题。解决方法包括手动管理音效暂停,监听失焦和聚焦事件,调整Laya.SoundManager.musicMuted状态,并保存和恢复音乐播放状态。此问题在切换音效素材时尤为明显,会导致音轨和音效类为空。
摘要由CSDN通过智能技术生成

复现方法:
1.用Laya.SoundManager.playMusic()随意播放一个音效文件
2.在项目内开启Laya.SoundManager.autoStopMusic = true; //通过窗口失焦静音键让音频自动跟随设备静音
3.使游戏失焦:
这时背景音和音效都会暂停,Laya.SoundManager.musicMuted不知道有没有被设置为false,但是关键解决办法在这个值上面;

4.在失焦的前提下用Laya.SoundManager.playMusic()播放另一个背景音乐:

5.返回游戏使游戏再次获得焦点:
游戏音效不再出现,不管怎么放都不会生效。

解决方案:
1.保持 Laya.SoundManager.autoStopMusic = false; 为false:
此处我们自己来管理音效是否因为失焦而自动暂停,监听游戏失焦事件:Laya.stage.on(Laya.Event.BLUR,this,this.method);
在失焦的回调里设置:
Laya.SoundManager.musicMuted = true;
Laya.SoundManager.stopMusic();
将正在播放的音乐路径存为成员变量;

2.监听游戏获取焦点事件:
监听游戏获得焦点事件:Laya.stage.on(Laya.Event.FOCUS,this,this.method);
在获取焦点的事件里设置:
Laya.SoundManager.musicMuted = false;
将之前存好的正在播放的音乐的成员变量用Laya.SoundManager.playMusic(this.playingBGM)继续播放;

3.问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值