使用javax.sound.midi包设置仪器通道

时间:2010-05-13 17:17:35

标签: java midi

我在javax.sound.midi包中设置乐器时遇到了问题。

Synthesizer synthesizer = MidiSystem.getSynthesizer();
MidiChannel[] channels = synthesizer.getChannels();

channels[0].programChange(5);
System.out.println(channels[0].getProgram());

来自MidiChannel上的documentation,对频道[0] .programChange(int)的调用应该改变MidiChannel设置的乐器,并立即反映在频道[0] .getProgram()中。但是我的程序打印“0”,表示没有任何改变。

稍后在代码中,我正在使用MidiChannel.getSequencer()成功播放midi声音(尽管只使用默认乐器。)

我是否打算以错误的方式设置仪器?

1 个答案:

答案 0 :(得分:3)

我遇到了和你一样的问题,虽然我们没有使用完全相同的实现来让MIDI信息随意查看我的问题,因为它可能对你有用:

Changing instrument in Java during playback