Cocos 3.13 AudioEngine preload 预加载

手动调用预加载 但是问题来了 当第二次调用同一个预加载的时候死循环开始界面 还需要自动控制一个预加载列表 防止多次调用同一个资源的预加载

重加载确实会卡死 测试了一下 如果这边在预加载 a.mp3 然后那边又在播放同一个音效 a.mp3 确实会卡顿
如果重复预加载 a.mp3 那就直接卡死

需要自己写控制器

我确认一下,有结果会这里同步。

我通过如下代码测试了一下,没有发现问题啊。

    for (int i = 0; i < 10; ++i)
    {
        AudioEngine::preload("audio/SoundEffectsFX009/FX082.mp3", [i](bool isSucceed){
            log("%d preload %s", i, isSucceed ? "succeed" : "failed");
        });
    }

你是不是类似这样用啊?

        AudioEngine::preload("audio/SoundEffectsFX009/FX082.mp3", [i](bool isSucceed){
            log("%d preload %s", i, isSucceed ? "succeed" : "failed");
            AudioEngine::preload("audio/SoundEffectsFX009/FX082.mp3", [i](bool isSucceed){
                log("2: %d preload %s", i, isSucceed ? "succeed" : "failed");
            });
        });

我按照上述两种方式测试,都没有发现问题啊。

一定要设置第二个预加载成功回调的参数,所有音效预加载成功后再进入游戏场景。

卡死问题解决了:https://github.com/cocos2d/cocos2d-x/pull/16478

请参照修改。