我想知道是否可以使用和显示均衡器频段,而无需实际播放音频。我有关于与所选频段范围相对应的噪声级别的信息。我想以音频均衡器带的形式显示该信息。谢谢你。
问问题
2463 次
1 回答
2
你的意思是http://docs.oracle.com/javafx/2/api/javafx/scene/media/AudioEqualizer.html吗?这个类不绘制任何东西,只是提供数据。FX 作为库没有均衡器控制,只是一种构建能力。
但是有很多基于 JavaFX 功能的均衡器。例如
- http://fxexperience.com/2012/01/fun-javafx-2-0-audio-player/
- Ensemble 示例中的 AudioChart:http ://www.oracle.com/technetwork/java/javafx/samples/index.html
您可以获取任何样本并将 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);
于 2012-06-19T11:20:47.557 回答