求 同一音效播放次数多后没声音的解决方法

微信小游戏在手机上运行时,一直播放同一音效10多次后所有音效都没有声音了,同时背景音乐那个AS组件会出现问题,比如对他进行stop、play报错提示AS的stop,play是null
我音效是一个AS使用playOneShot播放,背景音乐是用的另一个AS。

微信真机调试时,没有声音后提示[wxapplib]] [InnerAudioContext] using AudioDynamic

苹果手机没有这个问题

我在坛子里看一只都有音效播放上面的问题,但是没有在其中看到明确的解决办法,求各位前辈指点一下路子,谢谢啦

如果有朋友解决过这个问题麻烦指点下,

我用的引擎版本是3.7.1,也遇到了这个问题

你在engine/pal/audio/minigame/player-minigame.ts里面找
const innerAudioContext = minigame.createInnerAudioContext();
改成const innerAudioContext = minigame.createInnerAudioContext({useWebAudioImplement: true});
这个是换一个音频引擎,官方文档说内存会高,但我这边没有出现内存高

在engine/pal/audio/minigame/player-minigame.ts找public stop (): void {
this._innerAudioContext.stop();
}

加上一句,变成
public stop (): void {
this._innerAudioContext.stop();
this._innerAudioContext.destroy();
}
这个可以避免内存泄漏

你可以试试

2赞

好的谢谢啊,我试一下

我也遇到过类似的问题。
在微信pc测试没问题,到真机声音就异常。
1.如果设置useWebAudioImplement: false,那在真机播放的音效会有明显的延迟。
2.如果设置useWebAudioImplement: true,那在真机播放的音效有些会没有声音,又或者是声音变了。

但是在测试的时候发现,在设置useWebAudioImplement: true之后,有问题的音效都是wav格式。而MP3格式的都没有问题。
所以最后我是把全部的wav音效都转为MP3格式,并且设置设置useWebAudioImplement: true,问题就解决了。

提示createInnerAudioContext不需要参数

你改对文件了么,你引擎版本多少呀,这个函数是微信的函数,你看看是不是微信基础库版本太低了

我改的这个路径下的Creator\3.6.0\resources\resources\3d\engine\pal\audio\minigame
我去官网看这个方法确实有一个obj的参数没毛病啊,我这地方估计有问题

那看看是不是微信基础库版本太低了

也不是,vscode提示的信息,实际运行也没见有啥提示,但是声音问题依旧,哈哈哈,要方了

做游戏太难了,想去学卤鸭脖摆摊了

建议不要,摆小吃摊容易钱没赚到,自己还胖了

唉,无奈啊

@鸡儿,出来解释一下