我正在尝试用我自己的soundfont替换MIDI文件的默认soundfont;然而,新的soundfont是在旧的soundfont上播放的,而不是完全替换旧的。我的代码:
Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
synthesizer.unloadAllInstruments(synthesizer.getDefaultSoundbank());
synthesizer.loadAllInstruments(MidiSystem.getSoundbank(new File("Airhorn.sf2")));
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();
sequencer.getTransmitter().setReceiver(synthesizer.getReceiver());
InputStream inputStream = new BufferedInputStream(new FileInputStream(new File("Test.mid")));
sequencer.setSequence(inputStream);
sequencer.start();发布于 2017-07-15 23:06:37
您可以使用
MidiSystem.getSequencer(false)获取音序器并防止将其连接到默认设备。由我工作,JDK 8,Windows 10。
https://stackoverflow.com/questions/38427864
复制相似问题