我的目标
我想在Java中执行以下操作:记录Java本身发出的一些声音,然后将其保存为wav文件。
我在网上搜索了很多这样的程序,我发现了一些好的程序,但我一次又一次地遇到同样的问题(可以找到当前版本here)。问题总是这样:
在public class
中,函数start
以
AudioFormat format = getAudioFormat();
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
if (!AudioSystem.isLineSupported(info)) {
System.out.println("Line not supported");
System.exit(0);
}
,其中getAudioFormat()
返回AudioFormat(16000,8,2,true,true)
。如果我运行该文件,它会打印Line not supported
,但为什么?
我尝试了什么:
更多信息:
System.out.println(AudioSystem.getTargetLineInfo(info));
System.out.println(AudioSystem.getAudioFileTypes());
System.out.println(AudioSystem.getMixerInfo());
System.out.println(AudioSystem.getSourceDataLine(format));
其中format
是现有wav文件的格式,info
定义为第一个代码段,打印:
[Ljavax.sound.sampled.Line$Info;@4eec7777
[Ljavax.sound.sampled.AudioFileFormat$Type;@41629346
[Ljavax.sound.sampled.Mixer$Info;@6d311334
com.sun.media.sound.DirectAudioDevice$DirectSDL@448139f0
我使用Windows 7,64位。
我想补充一点,如果有更好,完全不同的方式来实现我的目标,那也没关系。