我想为Java中的音频文件添加混响效果,或者至少为这些音频文件的播放添加效果。 Java程序是一个桌面应用程序,所以我不能使用android库。我尝试使用Java Sound API在端口上使用控件,但它在我的测试机器上没有用。 (我的测试显示没有一个端口支持混响控制)。
Port line = null;
if (AudioSystem.isLineSupported(Port.Info.SPEAKER)) {
try {
line = (Port) AudioSystem.getLine(
Port.Info.SPEAKER);
}
catch(Exception ex){
ex.printStackTrace();
return;
}
}
EnumControl reverb = (EnumControl)line.getControl(EnumControl.Type.REVERB);
System.out.println(Arrays.toString(reverb.getValues()));
上面的代码没有用。有没有办法可以手动添加混响效果?也许是通过一些被忽视的api或通过操纵波形和/或那个波形的回放?任何建议都将得到应有的赞赏。
答案 0 :(得分:0)
如果您的驱动程序不支持混响,但支持播放多个彼此重叠的声音,则可以在实例之间短暂延迟和每次减小音量时多次播放相同的声音。 “正确的”混响也会对每次重复进行一些过滤,但这应该足够接近。
如果您的驱动程序不允许您这样做,您可以尝试重新处理声音本身以在播放之前添加混响,使用相同的方法。