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或销毁音效资源都没有用。

相关推荐
nenchoumi31192 小时前
UE5 学习系列(五)导入贴图资产
学习·游戏·ue5·机器人
编程乐学(Arfan开发工程师)8 小时前
56、原生组件注入-原生注解与Spring方式注入
java·前端·后端·spring·tensorflow·bug·lua
福大大架构师每日一题10 小时前
pytorch v2.7.1 发布!全面修复关键BUG,性能与稳定性再升级,2025年深度学习利器必备!
pytorch·深度学习·bug
Prokint.12 小时前
GPU算力租用平台推荐(AI/游戏串流/渲染/办公)
人工智能·游戏·云计算·gpu算力
云云32113 小时前
亚矩阵云手机针对AdMob广告平台怎么进行多账号的广告风控
大数据·网络·线性代数·游戏·智能手机·矩阵
Sui_Network13 小时前
WAYE.ai 为Sui 上 AI 的下一个时代赋能
大数据·前端·人工智能·物联网·游戏
老纪的技术唠嗑局16 小时前
网易游戏DB SaaS引入OceanBase:存储成本降60%,备份恢复提速3倍
游戏
Thomas_YXQ20 小时前
Unity3D SM节点式动画技能编辑器实现
开发语言·游戏·unity·编辑器·游戏引擎
编程绿豆侠21 小时前
力扣HOT100之贪心算法:45. 跳跃游戏 II
leetcode·游戏·贪心算法
小猫咪怎么会有坏心思呢2 天前
华为OD机考-数字游戏-逻辑分析(JAVA 2025B卷)
java·游戏·华为od