Java:SoundbankファイルをJARに埋め込む

jar java midi
Java:SoundbankファイルをJARに埋め込む

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);
 }

  1  0


ベストアンサー

これが私がしたことです。

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

わたしにはできる。

1


タイトルとURLをコピーしました