我在 javax.sound.midi 包中设置乐器时遇到问题。
Synthesizer synthesizer = MidiSystem.getSynthesizer();
MidiChannel[] channels = synthesizer.getChannels();
channels[0].programChange(5);
System.out.println(channels[0].getProgram());
来自documentation在 MidiChannel 上,对 channels[0].programChange(int) 的调用应该更改 MidiChannel 设置的乐器并立即反射(reflect)在 channels[0].getProgram() 中。但是我的程序打印“0”,表示没有任何改变。
稍后在代码中,我使用 MidiChannel.getSequencer() 成功播放 midi 声音(尽管仅使用默认乐器。)
我是否打算以错误的方式设置仪器?
最佳答案
我遇到了和你一样的问题,虽然我们没有使用完全相同的实现来制作 MIDI 消息,请随意查看我的问题,因为它可能对你有用:
关于java - 使用 javax.sound.midi 包设置乐器 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2828820/