当前位置:  开发笔记 > 编程语言 > 正文

简单的Java MIDI示例不产生任何声音

如何解决《简单的JavaMIDI示例不产生任何声音》经验,为你挑选了1个好方法。

这个简单的代码不会在我用来测试它的几台机器上产生任何声音.我正在运行Eclipse中的代码,但我也尝试使用命令行无济于事.

public static void main(String[] args)
{
    try {
        Synthesizer synthesizer = MidiSystem.getSynthesizer();
        synthesizer.open();

        MidiChannel[] channels = synthesizer.getChannels();

        channels[0].noteOn(60, 60);
        Thread.sleep(200);
        channels[0].noteOff(60);

        synthesizer.close();
    } catch (Exception e)
    {
        e.printStackTrace();
    }
}

通过获取音序器,将MIDI事件添加到序列并播放序列,我能够成功获得声音,但我正在尝试做一些实时音乐效果,音序器不支持.

有任何想法吗?

编辑解决方案:事实证明问题在于,默认情况下,JRE没有声音库(有趣的是,使用Sequencer工作,但使用合成器没有).谢谢,thejmc!

为了解决这个问题,我从java.sun.com下载了一个soundbank并将其放入(在WinXP上)C:\ Program Files\jre1.6.0_07\lib\audio(必须制作音频文件夹).



1> 小智..:

一些JRE安装不包括JavaSound soundbank.gm(为了节省空间),因此您的代码不会在这些机器上触发声源.

检查不起作用的机器上是否存在声音库.您也可以将声音库放在与.class文件相同的目录中,它会找到它.

可以添加声音库或升级那些机器上的Java安装 - 不一致的痛苦,我知道:)

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有