iOS AudioEngineImpl::resume 回到前台报错

  • Creator 版本:2.2.0

  • 目标平台: iOS

  • 详细报错信息,包含调用堆栈:
    #0 0x0000000100aa4970 in cocos2d::AudioEngineImpl::resume(int) at /Users/cgsd/Documents/work/Game/octonauts/build/jsb-default/frameworks/cocos2d-x/cocos/audio/apple/AudioEngine-inl.mm:541
    #1 0x00000001007df8f0 in cocos2d::AudioEngine::onEnterForeground(cocos2d::CustomEvent const&) at /Users/cgsd/Documents/work/Game/octonauts/build/jsb-default/frameworks/cocos2d-x/cocos/audio/AudioEngine.cpp:370
    #2 0x00000001007ee464 in decltype(std::__1::forward<void (&)(cocos2d::CustomEvent const&)>(fp)(std::__1::forward<cocos2d::CustomEvent const&>(fp0))) std::__1::__invoke<void (&)(cocos2d::CustomEvent const&), cocos2d::CustomEvent const&>(void (&)(cocos2d::CustomEvent const&), cocos2d::CustomEvent const&) at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425
    #3 0x00000001007ee3fc in void std::__1::__invoke_void_return_wrapper::__call<void (
    &)(cocos2d::CustomEvent const&), cocos2d::CustomEvent const&>(void (&)(cocos2d::CustomEvent const&), cocos2d::CustomEvent const&) at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348
    #4 0x00000001007ee39c in std::__1::__function::__alloc_func<void (
    )(cocos2d::CustomEvent const&), std::__1::allocator<void ()(cocos2d::CustomEvent const&)>, void (cocos2d::CustomEvent const&)>::operator()(cocos2d::CustomEvent const&) at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533
    #5 0x00000001007ecc74 in std::__1::__function::__func<void (
    )(cocos2d::CustomEvent const&), std::__1::allocator<void (*)(cocos2d::CustomEvent const&)>, void (cocos2d::CustomEvent const&)>::operator()(cocos2d::CustomEvent const&) at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707
    #6 0x0000000100cb8fac in std::__1::__function::__value_func<void (cocos2d::CustomEvent const&)>::operator()(cocos2d::CustomEvent const&) const at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860
    #7 0x0000000100cb1204 in std::__1::function<void (cocos2d::CustomEvent const&)>::operator()(cocos2d::CustomEvent const&) const at /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419
    #8 0x0000000100cb08e4 in cocos2d::EventDispatcher::dispatchCustomEvent(cocos2d::CustomEvent const&) at /Users/cgsd/Documents/work/Game/octonauts/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/event/EventDispatcher.cpp:447
    #9 0x0000000100cb0ae0 in cocos2d::EventDispatcher::dispatchEnterForegroundEvent() at /Users/cgsd/Documents/work/Game/octonauts/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/event/EventDispatcher.cpp:344
    #10 0x00000001004db1f4 in AppDelegate::applicationWillEnterForeground() at /Users/cgsd/Documents/work/Game/octonauts/build/jsb-default/frameworks/runtime-src/Classes/AppDelegate.cpp:99
    #11 0x000000010051df58 in -[AppController applicationWillEnterForeground:] at /Users/cgsd/Documents/work/Game/octonauts/build/jsb-default/frameworks/runtime-src/proj.ios_mac/ios/AppController.mm:308

  • 重现方式:
    播放一个短音频,在播放前按home回到后台。音频会在回到后台的过程中播放完。在回到前台

  • 出现概率:高

回到前台恢复播放音频报错。大佬们快来

问题解决了吗?我也是cocoscreator 2.2.0 ios 系统版本 13.5.1,调用微信授权后,返回前台崩溃到这里(点击微信按钮有音效)

bool AudioEngineImpl::resume(int audioID)
{
if (!_checkAudioIdValid(audioID)) {
return false;
}
bool ret = true;
alSourcePlay(_audioPlayers[audioID]->_alSource);

auto error = alGetError();
if (error != AL_NO_ERROR) {
    ret = false;
    ALOGE("%s: audio id = %d, error = %x", __PRETTY_FUNCTION__,audioID,error);
}

return ret;

}

刚发现Creator 在 2.3.3 已经修改过这个问题了。醉了,还有这种低级错误。弄了2天。。。。