Laya:【音效BUG】在游戏失焦后再次返回游戏导致音效播放异常的问题与解决方案

PS:ios 上不支持 ogg格式音频, 全部使用MP3.或者 在只ios不使用ogg。

复现方法:

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.问题解决

总结:

目前还不知道是不是因为SoundManager内的aotuStopMusic导致的问题,不过可以证明的是如果项目在失焦的状态下并且aotuStopMusic已经被设置过true的前提下,在失焦状态下切换音乐路径后再回到游戏会导致播放音乐方法失效,无论你怎么stopMusic或销毁音效资源都没有用。

相关推荐
哥本哈士奇16 分钟前
LangChain Deepagent 版本0.6.1中间件一个bug
中间件·langchain·bug
伽蓝_游戏1 小时前
第二章:深入 Unity 资源导入管线 (Asset Import Pipeline)
游戏·unity·c#·游戏引擎·游戏程序
资源分享助手2 小时前
星砂岛游戏下载及完整攻略汇总(5职业养成 / 家园布局 / 全地块与成就 / 载具 / 赚钱)
游戏
happilyaaa6 小时前
洛谷 P1080 国王游戏 (贪心)
游戏
java修仙传6 小时前
Java 实习日记:断面状态筛选 Bug 修复与对比案例日期过滤优化
java·bug·实习
我寄人间雪满头丶6 小时前
Unity中对于数值游戏的大数显示
游戏·unity·游戏引擎
海天鹰7 小时前
Linux系统4399云游戏无法进入
linux·游戏
游乐码8 小时前
Unity基础(二)游戏中的角度及三角函数
游戏·unity·游戏引擎
CeshirenTester9 小时前
当其他人回复您的帖子时是否接收实时通知? “线上Bug排查3小时,CTO当场发火”:一套让测试人“硬气”起来的质量保障体系
bug
a588081110 小时前
Win10/11能玩暗黑破坏神1,经典游戏回复,详细安装教程,附下载安装包
游戏