讀取輸入當我運行java -jar MidiTest.jar
,輸入一個MIDI文件,它拋出:無法從罐子
Exception in thread "main" java.lang.NullPointerException at com.sun.media.sound.StandardMidiFileReader.getSequence(StandardMidi leReader.java:209) at javax.sound.midi.MidiSystem.getSequence(MidiSystem.java:802) at MidiTest.playMidi(MidiTest.java:56) at MidiTest.(MidiTest.java:44) at MidiTest.main(MidiTest.java:25)
如果我使用java MidiTest
相反,它可能沒有問題發揮。代碼有什麼問題?我已經與換行符清單文件添加Main-Class: MidiTest
我的代碼:
private void playMidi() {
if(isPlaying.equals("0")) {
try {
song = MidiSystem.getSequence(
getClass().getResource(filename));
sequencer = MidiSystem.getSequencer();
sequencer.setSequence(song);
sequencer.open();
sequencer.addMetaEventListener(this);
sequencer.start();
} catch (InvalidMidiDataException e) {
System.out.println("Bad midi file: "
+ filename);
System.exit(1);
} catch (MidiUnavailableException e) {
System.out.println("No sequencer available");
System.exit(1);
} catch (IOException e) {
System.out.println("Could not read: "
+ filename);
System.exit(1);
}
displayMidiInfo(filename);
} else {
updateTempoFactor(speed);
}
}
我猜它是與你如何訪問文件,但我們需要看到你的代碼真正幫助你。 – 2010-10-27 02:56:42
好吧,我已經添加了我的代碼。我的輸入是「MidiFileNewsong.mid」,然後將其剝離並播放「song.mid」。 – Proyb2 2010-10-27 03:06:48