安卓第一次播放音频时会卡顿

安卓第一次播放音频时会卡顿,使用cc.audioEngine 或者audioSource 调用播放clip对象,第一次必定卡顿,安卓手机性能越差,卡顿越明显,有做过预加载,但是数量比较多60多个,在进场景前处理也会卡好多秒,论坛找过很多帖子最后都没有合理的解决方式,大家都没遇到这个问题吗

  • Creator 版本: 2.3.3

  • 目标平台:Android

  • 重现方式:使用cc.audioEngine 或者audioSource 调用播放clip对象,第一次必定卡顿

  • 之前哪个版本是正常的:iOS iphone6s无卡顿

  • 手机型号: 安卓红米8a

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率:

顶一下,测试demoandroidtest.rar (1.4 MB) ,有人能帮忙看看原因吗

在网上有看到说修改底层代码的,
**将cocos2d-x\cocos\audio\android\AudioPlayerProvider.cpp中的getSystemAPILevel() < 17都改为getSystemAPILevel() >= 17。
这个处理看着就不靠谱,但是这样修改后确实第一次播放音频时不卡了,但是出现的问题是整体性能下降好多,各种掉帧(好像是播放音效多的时候)

顶顶顶,来大佬指引下方向

预加载完播放一次音量为0的音效。

提前播放一次音效也只是把卡顿放在了前面,并没有解决安卓播放卡顿的问题,像我说的红米8a提前播放5,60个音效文件,直接在加载页卡住了差不多7秒,是卡住。。

顶顶顶顶顶顶顶顶顶

没有人遇到这个问题吗,没人解决这个问题吗

顶顶顶顶顶顶顶顶顶

同遇到,暂时没什么好的解决方案

这个问题非常坑,播之前用这个加载一次
jsb[‘AudioEngine’]._preload(soundClip.nativeUrl, () => {

})

我看源码 preload 好像并不能解决这个问题

实际上调用这个就不卡顿了 :rofl:

好的,我试下先,给大佬递茶

菜鸡不敢称大佬 :rofl:

原生音效好像是.cpp文件

楼主解决了么,
我对每个音频文件在游戏初始化的时候都使用了
jsb[‘AudioEngine’]._preload(clip.nativeUrl, () => {
})
const id = cc.audioEngine.play(clip, false, 0.0);
然后再在场景中播放,安卓红米 K30 5G,也是很卡,对比iPhone 手机就无卡顿。哎

写回调里播啊 哥们

大佬,我改成这样了,
游戏启动初始化的时候,对每个音频调用:
const id = cc.audioEngine.play(clip, false, 0.0);
console.log(‘id=’ + id);

游戏中对要播放的音频使用:
jsb[‘AudioEngine’]._preload(clip.nativeUrl, () => {
cc.audioEngine.play(clip, false, 1.0);
});
Creator版本是2.4.3,这样还是卡顿,安卓手机上(红米 K30 5G)还是没有什么改善。大佬是这样写的吗?请您用什么安卓手机测试的?感谢指导

cc.resources.load(url, cc.AudioClip, (err, clip:cc.AudioClip) => {

            jsb['AudioEngine']._preload(clip.nativeUrl, () => {

                cc.audioEngine.playEffect(clip, false);

            })

        })

我是这么写的