我目前正在从 Head First Java 一书中学习 Java。我正在尝试书中给出的这段代码:
import javax.sound.midi.*;
public class MiniMiniMusicApp {
public static void main(String[] args) {
MiniMiniMusicApp mini = new MiniMiniMusicApp();
mini.play();
}
public void play() {
try {
Sequencer player = MidiSystem.getSequencer();
player.open();
Sequence seq = new Sequence(Sequence.PPQ, 4);
Track track = seq.createTrack();
ShortMessage a = new ShortMessage();
a.setMessage(144, 1, 44, 100);
MidiEvent noteOn = new MidiEvent(a, 1);
track.add(noteOn);
ShortMessage b = new ShortMessage();
b.setMessage(128, 1, 44, 100);
MidiEvent noteOff = new MidiEvent(b, 16);
track.add(noteOff);
try {
player.setSequence(seq);
player.start();
Thread.sleep(2000);
player.close();
} catch (InvalidMidiDataException ex) {
System.out.println("Invalid MIDI data");
}
} catch (Exception ex) {
System.out.println("Can't play sound");
ex.printStackTrace();
}
}
}
但是,当我运行此代码时,我既没有听到任何声音,也没有收到任何错误。我在 Pop 上使用 openjdk 11.0.6!操作系统 19.10。我无法弄清楚可能出了什么问题。