这个简单的代码在我用来测试的几台机器上没有产生任何声音。我正在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起作用了,而使用Synthesizer却没有了)。谢谢
为了解决该问题,我从java.sun.com下载了一个音库,并将其放在(在WinXP上)C:\ Program Files \ jre1.6.0_07 \
lib \ audio(必须创建音频文件夹)中。