cocos2d-x 2.X 播放音效偶现bug

游戏有音效播放和背景音乐播放。

home健退出后再启动游戏,音效消失。 重复一次音效出现。真机才有这个问题。且不是必现。

遇到同样的问题
在菜单界面home返回 然后再进入 开始游戏 音效消失 重新开始游戏音效恢复
我也是真机才有问题 而且现象可以复制 唉 不知道是哪里的问题

  1. 游戏转入后台的时候不要调用:
    CocosDenshion::SimpleAudioEngine::sharedEngine()->stopAllEffects();

  2. 游戏转入前台恢复的时候不要调用:
    CocosDenshion::SimpleAudioEngine::sharedEngine()->resumeAllEffects();

同样的问题存在,从cocos2dx1.3 到现在的2.2 一直被这个问题苦恼.老版本的2dx反而正常。

没用的啊,2.2中早已经屏蔽,但是一样的问题

我也是最近碰到这个问题 ,不过早上改了下 目前的确好了。

你是2dx多少版本啊?

2.1.4. …

我也是这个问题,请问这么改啊

CocosDenshion::SimpleAudioEngine::sharedEngine()->stopAllEffects();
CocosDenshion::SimpleAudioEngine::sharedEngine()->resumeAllEffects();
这两句话注掉了之后确实能够解决音效消失的问题
但是有一定的几率出现崩溃问题

崩溃点在:
if(!)
{
// CCLOG(@“cocos2d: Failed to swap renderbuffer in %s\n”, FUNCTION);
}

void CCEGLView::swapBuffers()
{
swapBuffers];
}

求大神解答

我现在用的2.2.2,没有用stopalleffect等函数,还是能够重复出这个错误,怎么解决啊?

一般是音效时间较长约2-3秒,然后中间没放完的时候,按home键(ios真机),会有一定概率出现这个错误。。。。

我也遇到了同样的问题 版本是2.2.1 的:6:

这个问题 就没官方的人出来说话吗?

1赞

void AppDelegate::applicationDidEnterBackground()在这里调用

CocosDenshion::SimpleAudioEngine::sharedEngine()->pauseAllEffects();

然后暂停结束后,不要调用恢复的那个。。。就可以了。。。

一点问题没有 完美无瑕

我找到了解决方法

在ios/AppController.mm中加入两行就可以了

  • (void)applicationWillEnterForeground:(UIApplication )application {
    /

    Called as part of transition from the background to the inactive state: here you can undo many of the changes made on entering the background.
    /
    NSError
    err; //加入这一行
    setActive:true error:&err]; //加入这一行
    cocos2d::Application::getInstance()->applicationWillEnterForeground();
    }

这位朋友,你那个setActive: 是谁调用啊?最关键的没写。