我是Java的新手...
我想从WAV文件中绘制频率/时间图或样本图像。
首先,我正在努力使用AudioInputStream从Wav文件获取原始数据数组,而AudioInputStream也从Reading wav file in Java引用。
我也尝试引用http://www.labbookpages.co.uk/audio/javaWavFiles.html的WavFile类,但是在测试时,我无法找到正确的软件包来满足“WavFile”-“找不到符号”错误。提供的导入java.io. *;因为那个 sample 不满足于此...
重申一下,我希望以Wav文件的数组格式获取原始数据。
我会喜欢这个小例子,因为我可以从例子中轻松学习!
谢谢你的时间
最佳答案
从wav文件(标题)中跳过前44个字节,然后使用此功能读取数据:
private static double readLEShort(RandomAccessFile f) {
try {
byte b1 = (byte) f.read();
byte b2 = (byte) f.read();
return (double) (b2 << 8 | b1 & 0xFF) / 32767.0;
} catch (IOException e) {
e.printStackTrace();
}
return 0;
}
每个 channel 一个值。这将为您提供介于-1和1之间的数字,您可以在图形上绘制该数字。我希望这可能会起作用