我想知道是否可以使用和显示均衡器频段,而无需实际播放音频。我有关于选择频段范围的噪音水平的信息。我想以音频均衡器带的形式显示该信息。谢谢。
答案 0 :(得分:2)
你的意思是http://docs.oracle.com/javafx/2/api/javafx/scene/media/AudioEqualizer.html吗?这个类没有绘制任何东西,只提供数据。 FX作为库没有均衡器控制只能构建一个。
但是有很多均衡器建立在JavaFX功能之上。例如。
您可以使用任何该样本并使用您自己的数据替换MediaPlayer波段输出。
E.g。从fxexperience.com下载项目。打开它,找到FxExperiencePlayer文件。那里有下一行:
spectrumListener = new AudioSpectrumListener() {
...
这是创建的监听器,它根据波段更新UI。而不是将该监听器提供给MediaPlayer,而不是自己调用它。 E.g。
new Thread() {
public void run() {
Random random = new Random();
for (int i = 0; i < 10000; i++) {
final float[] magnitudes = new float[10];
for (int j = 0; j < magnitudes.length; j++) {
magnitudes[j] = random.nextFloat() * -100f;
}
Platform.runLater(new Runnable() {
@Override
public void run() {
spectrumListener.spectrumDataUpdate(0, 0, magnitudes, null);
}
});
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
}
}
}
}.start();
并注释下一行以禁用媒体播放器:
//mediaPlayer.setAudioSpectrumListener(spectrumListener);