cocos2dx掼蛋_解决cocos2d-x 后台切换 没有声音的问题

本文主要讨论了使用cocos2d-x开发游戏时遇到的一个常见问题,即应用从后台切换回来后,音效无法正常播放,而背景音乐仍然可以。通过分析错误日志 `[aurioc] 1322: AUIOClient_StartIO failed (561015905)`,发现OpenAL在后台状态下可能导致声音失效。为了解决这个问题,作者提出将`applicationWillEnterForeground`中的回调移动到`applicationDidBecomeActive`中,将`cc`的`WillEnterForeground`改为`DidEnterForeground`。经过测试,该方案在iOS上解决了问题,而在Android和macOS上并未出现此问题。
摘要由CSDN通过智能技术生成

用cocos2d-x有一个很烦的问题,经常跳到微信登录界面,再返回时,就放不出音效了。背景音乐还有,就是一直哑声;有时候却又是正常的;多切换几次,说不定又好了,真他妈诡异!

我们用的是最新版cocos2d-x-3.15.1,在USB连线测试时,基本上不会出问题,切换了十几次,音效完全正常。尼玛!

不信邪,继续切换;切换几十次后,终于有一次出问题了,复现成功!控制台log里有

[aurioc] 1322: AUIOClient_StartIO failed (561015905)

这样的信息。有log就好办,开始面向Google编程。多看了几个不同项目的issue,似乎是这样的:

openal(cocos2d-x simpleAudioEngine用的是这货吧?) 使用时,必须在前端活跃状态才行,如果切换到后台,必须停止播放,要不然就失效,各种Undefined Behaviour。因此,cocos2d-x里也监控了这种变化,在AppController.mm这个系统的applicationDidEnterBackground里调用cc自己的applicationDidEnterBackground;在AppController.mm这个系统的applicationWillEnterForeground里调用cc自己的applicationWillEnterForeground,妄图达到app激活时恢复声音,app进入后台就暂停声音这种效果。

只是,iOS的状态比较多,就算是进入后台,也有WillEnterBac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值