首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不播放音频的JavaFX EqualizerBand

不播放音频的JavaFX EqualizerBand
EN

Stack Overflow用户
提问于 2012-06-15 20:51:24
回答 1查看 2.4K关注 0票数 0

我想知道是否有可能使用和显示均衡器频带,而不实际播放音频。我有与所选波段范围相对应的噪声水平的信息。我想以音频均衡器频带的形式显示该信息。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-19 19:20:48

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

但是有很多均衡器是建立在JavaFX功能之上的。例如。

集成中的

  • http://fxexperience.com/2012/01/fun-javafx-2-0-audio-player/
  • AudioChart示例:http://www.oracle.com/technetwork/java/javafx/samples/index.html

您可以采用这些样本中的任何一个,并将MediaPlayer波段输出替换为您自己的数据。

例如,从fxexperience.com下载项目。打开它并找到FxExperiencePlayer文件。下面是下一行:

代码语言:javascript
复制
    spectrumListener = new AudioSpectrumListener() {
    ...

这里是创建的监听器,它根据波段更新UI。不是将侦听器提供给MediaPlayer,而是自己调用它。例如。

代码语言:javascript
复制
    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();

并注释下一行以禁用媒体播放器:

代码语言:javascript
复制
    //mediaPlayer.setAudioSpectrumListener(spectrumListener);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11050996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档