我对Java不太熟悉,所以请保持简单.但是,我会尝试理解你发布的所有内容.这是我的问题.
我编写了代码来记录来自外部麦克风的音频并将其存储在.wav中.存储此文件与存档目的相关.我需要做的是存储音频的FFT.
我的方法是将wav文件作为一个字节数组加载并转换它,问题是1.我需要摆脱一个标题,但我应该能够做到这一点而且2.我得到了一个字节数组,但我在网上找到的大多数(如果不是全部)FFT算法都尝试使用复杂/两个双数组修补我的项目工作.
我试图解决这两个问题,最后能够将我的FFT数组绘制成图形,当我发现它只是给我回"0"时..wav文件很好,我可以毫无问题地播放它.我想也许把字节转换成双打对我来说是个问题,所以这是我的方法(我知道它不漂亮)
byte ByteArray[] = Files.readAllBytes(wav_path);
String s = new String(ByteArray);
double[] DoubleArray = toDouble(ByteArray);
// build 2^n array, fill up with zeroes
boolean exp = false;
int i = 0;
int pow = 0;
while (!exp) {
pow = (int) Math.pow(2, i);
if (pow > ByteArray.length) {
exp = true;
} else {
i++;
}
}
System.out.println(pow);
double[] Filledup = new double[pow];
for (int j = 0; j < DoubleArray.length; j++) {
Filledup[j] = DoubleArray[j];
System.out.println(DoubleArray[j]);
} …Run Code Online (Sandbox Code Playgroud)