JavaFX EqualizerBand无需播放音频

时间:2012-06-15 12:51:24

标签: media-player javafx-2

我想知道是否可以使用和显示均衡器频段,而无需实际播放音频。我有关于选择频段范围的噪音水平的信息。我想以音频均衡器带的形式显示该信息。谢谢。

1 个答案:

答案 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);