读取输入当我运行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