【发布时间】:2010-08-26 01:23:34
【问题描述】:
我想在我的 Java 小程序中加载到 javax.sound.sampled.Clips 数组中的两个音频剪辑之间平滑过渡。目前我停止一个剪辑并开始下一个剪辑,但由于音频突然停止和开始,这会产生可听见的咔嗒声。我需要使用 Clip 界面,以便在保持相同轨道位置的剪辑之间进行循环和过渡。
我尝试在停止一个剪辑之前降低增益,然后在使用FloatControl.Type.MASTER_GAIN 开始下一个剪辑时将增益回升。如果我想快速改变增益,这需要刷新缓冲区,即使如此,如果我试图太快地改变增益,我也会点击和结结巴巴。另外,刷新缓冲区需要我停止并重新启动剪辑以取回已刷新的缓冲区(因此我不会向前跳过已刷新的部分),这会引入与我试图摆脱的相同的点击。
有没有人经历过快速改变增益(在 200 毫秒内),比如从 0dB 到 -60dB。我在想我可能不得不降低到缓冲区级别并开始直接操作这些位,但我不知道如何从 Clip 界面进行操作。
有什么建议吗?
【问题讨论】: