1
如果我有一個存儲在JAR中的soundbank,我將如何使用資源加載將該音頻庫加載到我的應用程序中?Java:在JAR中嵌入Soundbank文件
我試圖將盡可能多的MIDI程序整合到jar文件中,而我必須添加的最後一件事是我使用的soundbank文件,因爲用戶不會安裝soundbanks 。我試圖把它放到我的jar文件中,然後用Class類中的getResource()加載它,但是我在soundbank上得到了一個InvalidMidiDataException,我知道它是有效的。
下面的代碼,它在構造函數中我的合成對象:
try {
synth = MidiSystem.getSynthesizer();
channels = synth.getChannels();
instrument = MidiSystem.getSoundbank(this.getClass().getResource("img/soundbank-mid.gm")).getInstruments();
currentInstrument = instrument[0];
synth.loadInstrument(currentInstrument);
synth.open();
} catch (InvalidMidiDataException ex) {
System.out.println("FAIL");
instrument = synth.getAvailableInstruments();
currentInstrument = instrument[0];
synth.loadInstrument(currentInstrument);
try {
synth.open();
} catch (MidiUnavailableException ex1) {
Logger.getLogger(MIDISynth.class.getName()).log(Level.SEVERE, null, ex1);
}
} catch (IOException ex) {
Logger.getLogger(MIDISynth.class.getName()).log(Level.SEVERE, null, ex);
} catch (MidiUnavailableException ex) {
Logger.getLogger(MIDISynth.class.getName()).log(Level.SEVERE, null, ex);
}