播放音效后,停止失败

使用的是合成音效,很多小的音效合成一段长音效,根据配置表,设置起始位置和持续时间,根据持续时间,使用setTimeOut进行控制停止播放。偶尔会出现根据playEffect返回的id去调用stopEffect(id),返回播放失败问题,最终导致音效乱掉,持续播放到结尾,查看cc.audioEngine["_id2audio"],发现里边的id已经没有,导致返回失败.定制引擎,发现是走了ended后删除了id,导致后续stopEffect(id)返回失败,造成音效停止不了的问题。在不改动引擎的情况下,求大佬指点下如何破

ps:音效文件总时常65s,需要播放的音效的起始时间是47s,音效播放持续时间0.1s左右

源代码注释:

打印结果:

你这个是一个一个放还是多个音效可能同时播放?

因为同时播放多个音效,可能有些音效会播放失败。

有同时的,也有间隔de

播放失败的话,在startEffect是不是应该返回空,而不是一个number

调用stopEffect(id)时,这里的id是正确的吗?因为我感觉这里很容易出错。

这个没错,你看我上边的图,里边突然少了一堆的id,导致后续停止不了

@gameMaster

顶一下,别沉