我正在创建一个简单的音频可视化工具。下面是代码
import ddf.minim.analysis.*;
import ddf.minim.*;
Minim minim;
AudioInput in;
FFT fft;
int w;
PImage fade;
void setup() {
size(640,480); // draw screen
minim = new Minim(this); // new minim object
in = minim.getLineIn(Minim.STEREO,512); // audio input from microphone (have to change this to get currently playing audio)
fft = new FFT(in.bufferSize(),in.sampleRate()); // new fft object
fft.logAverages(60,7);
stroke(255);
w=width/fft.avgSize();
strokeWeight(w); // display lines as bars
background(0);
}
void draw() {
background(0);
fft.forward(in.mix); //generate fourier series
for(int i = 0; i < fft.avgSize(); i++) {
line((i*w)+(w/2),height, (i*w)+(w/2), height - fft.getAvg(i)*4); // draw bars
}
}
这里in = minim.getLineIn(Minim.STEREO,512);
给出了来自麦克风的音频输入。但是我需要得到当前正在播放的音频(你从扬声器或耳机听到的)的计算机和可视化它。
如果有任何方法或任何其他方式获得当前播放音频作为输入,请提及。提前感谢:)
这样的问题最好通过阅读参考来回答:
AudioInput是与计算机当前记录源的连接。如何设置计算机的录音源将取决于声卡和操作系统,但通常用户可以打开控制面板并从那里设置源。不幸的是,没有办法从Java中设置记录源。
换句话说,这是一个用户必须在控制面板中更改的设置。这里和这里似乎都证实了这一点。