gpt4 book ai didi

Java:在 JAR 中嵌入 Soundbank 文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:54:56 25 4
gpt4 key购买 nike

如果我有一个存储在 JAR 中的音库,我如何使用资源加载将该音库加载到我的应用程序中...?

我正在尝试将尽可能多的 MIDI 程序合并到 jar 文件中,我必须添加的最后一件事是我正在使用的音库文件,因为用户不会安装音库。我试图将其放入我的 jar 文件中,然后使用 Class 类中的 getResource() 加载它,但我在我知道有效的音库上收到 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);
}

最佳答案

这就是我所做的:

synth.loadAllInstruments(
MidiSystem.getSoundbank(
getClass().getResourceAsStream(filePath)));

这对我有用。

关于Java:在 JAR 中嵌入 Soundbank 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com