音效 播放多次同一个音效

Assertion failed: (state == AL_PLAYING), function play2d, file /Users/mac/Documents/editor_3d/v3.4.2/resources/3d/engine-native/cocos/audio/apple/AudioPlayer.mm, line 210.

多次播放同一个音效,会导致没声音,模拟器测试闪退,这个没人遇到吗?

如果你指的没声音是指其中一个通过 play 接口的音频被停止的话,那么是因为 cocos 限制了最大播放的音频数量,超出就会停止其中一个音频,可以通过 cc.AudioSource.maxAudioChannel 获取数量, 在原生和 web 都不同

我最近也遇到了,音效比较多的时候,背景音乐就没了,

1赞

假如是这个超出了最大播放量之后,之后所有的音效都没声音了?需要怎么处理?比如子弹一直发射,突然就没声音。。。

超出 cc.AudioSource.maxAudioChannel 只会停止其中一个通过 play 接口播放的音频,除非是你一直调用,才会把之前所有的音频停止只剩下当前的音频播放,那么自己逻辑层面处理一下单个音频的最大播放数量就好了

我通过playOneShot这个接口播放的,不是停止了之前的,是所有的都停止了,后面的都不会有音效,我模拟器测试时直接闪退了

那就自己看日志,肯定会有报错信息的,网页没有就AS看

这是引擎里导致问题的地方

应该可以用代码逻辑来控制同时播放相同音频的数量,检测原来的还有多少在播放就不播放新的。

添加时间间隔

请问是在哪个平台上遇到的呢

方便提供一下 demo 吗,我们跟进下看看

我在模拟器测试闪退了,就是用一个声音,循环多播放一二十次就卡死了

是 mac 上的 模拟器吗,可以提供一下音效文件吗,具体使用场景是怎么样的呢,可以提供一下代码片段吗

是mac,就是简单的调用播放声音接口assets.zip (30.1 KB)

是 audioSource.playOneShot 接口吗

是的playOneShot

问题复现了,我们先调查下哈,有结论了会同步这个帖子

好的 :ok_hand:

这个playonshot同时播放非常多音效会导致微信ios端的性能很差

看下有没有微信原生接口吧 用原生接口去播 之前vivo op 也是 只要你播的频率高一些 后面所有的音效都播不了 后面用vivo提供的原生接口去播才解决