答案 0 :(得分:0)
注意:我不是iOS开发人员,只是展示了我将在任何其他平台上使用的解决方案。
您可以通过在决定停止后逐渐改变源的增益一段时间来实现声音淡出。 基本上,这就是你必须做的事情
float t = now - stopTime;
float d = 10
if(t > d)
//Stop sound and delete source
else
alSourcef(source, AL_GAIN, originalGain * (1F - t / d))
在这个伪代码中originalGain
是没有淡出的源的增益
now
- 当前时间
stopTime
- 你决定停止采购的那一刻
10
- 淡出的持续时间
通过使用这些值,您可以在完全增益和0之间进行线性插值,并防止破坏声音效果。