首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OpenAL中停止流畅的声音

如何在OpenAL中停止流畅的声音
EN

Stack Overflow用户
提问于 2017-11-20 11:22:44
回答 1查看 541关注 0票数 1

我有太多的声音在OpenAL中播放,并且源的数量太多,有时我不得不停止一些源使用函数alSourceStop.but它经常产生断音(音爆),如何避免这种现象?

EN

回答 1

Stack Overflow用户

发布于 2017-11-22 03:35:18

注意:我不是一个iOS开发人员,只是展示了一个我会在任何其他平台上使用的解决方案。

你可以通过在你决定停止它之后的一段时间内逐渐改变源的增益来实现声音淡出。基本上,这就是你要做的

代码语言:javascript
复制
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 - current time stopTime -决定停止信号源的时刻10 -淡出持续时间

通过使用这些值,您可以在完全增益和0之间线性插值,并防止破碎的声音效果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47384635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档