首页 > 解决方案 > Android双簧管库在声音的开始/结束处点击

问题描述

我在我的应用程序中使用双簧管库来生成声音。他们的示例SineGenerator几乎正是我所需要的,只是一个简单的正弦波,可以产生我需要的频率。这个生成的正弦波是稍后在PlayAudioEngine中的用户。

问题是,我播放的音频的开头或结尾通常会发出咔哒声。我以连续的短脉冲播放声音,长度通常在 50 到 150 毫秒之间。

我真的没有产生音频波的经验,所以也许这只是我没有看到非常明显的东西。我已尝试按照本文中的建议优化性能(编译器标志 + 代码),但没有产生任何结果。我也尝试降低幅度,但没有明显的结果。

任何建议表示赞赏。谢谢!

标签: androidoboe

解决方案


启动振荡器时的点击是由于未重置相位引起的Oscillator::setWaveOn(true)(正如@greeble31 在评论中提到的那样)。这是对“wave on”场景的简单修复,只需设置mPhase为零。

对于“波形关闭”,解决方案是在幅度上进行非常短的斜坡下降,而不是仅仅切断声音。

可以在 中执行此操作,但是,实现一个可以独立处理斜坡下降的单独类Oscillator::renderAudio可能会更灵活。Envelope


推荐阅读