我在 javax.sound.midi 包中设置仪器时遇到问题。
Synthesizer synthesizer = MidiSystem.getSynthesizer();
MidiChannel[] channels = synthesizer.getChannels();
channels[0].programChange(5);
System.out.println(channels[0].getProgram());
从 MidiChannel 的文档中,对 channels[0].programChange(int) 的调用应该会更改 MidiChannel 设置的工具,并立即反映在 channels[0].getProgram() 中。但是我的程序打印“0”,表示没有任何改变。
稍后在代码中,我使用 MidiChannel.getSequencer() 成功播放 midi 声音(尽管仅使用默认乐器。)
我是否打算以错误的方式设置仪器?