我想知道是否有可能使用和显示均衡器频带,而不实际播放音频。我有与所选波段范围相对应的噪声水平的信息。我想以音频均衡器频带的形式显示该信息。谢谢。
发布于 2012-06-19 19:20:48
你是说http://docs.oracle.com/javafx/2/api/javafx/scene/media/AudioEqualizer.html吗?这个类不绘制任何东西,只是提供数据。FX as库没有均衡器控制,只有构建均衡器的能力。
但是有很多均衡器是建立在JavaFX功能之上的。例如。
集成中的
您可以采用这些样本中的任何一个,并将MediaPlayer波段输出替换为您自己的数据。
例如,从fxexperience.com下载项目。打开它并找到FxExperiencePlayer文件。下面是下一行:
spectrumListener = new AudioSpectrumListener() {
...这里是创建的监听器,它根据波段更新UI。不是将侦听器提供给MediaPlayer,而是自己调用它。例如。
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);https://stackoverflow.com/questions/11050996
复制相似问题