0

我想知道是否可以使用和显示均衡器频段,而无需实际播放音频。我有关于与所选频段范围相对应的噪声级别的信息。我想以音频均衡器带的形式显示该信息。谢谢你。

4

1 回答 1

2

你的意思是http://docs.oracle.com/javafx/2/api/javafx/scene/media/AudioEqualizer.html吗?这个类不绘制任何东西,只是提供数据。FX 作为库没有均衡器控制,只是一种构建能力。

但是有很多基于 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);
于 2012-06-19T11:20:47.557 回答