前提是我正在输入音符并且程序会播放相应的钢琴音符。唯一的问题是第一个音符有效,但其余音符不播放。所以,如果我输入“ABC”,音符 A 会播放,但音符 B 和 C 不会。是因为文件是静态的吗?
public class SnapMusic {
static File file = new File("");
static void setUp() {
try {
Clip clip = AudioSystem.getClip();
clip.open(AudioSystem.getAudioInputStream(file));
clip.start();
Thread.sleep(clip.getMicrosecondLength());
}
catch (Exception e) {
System.err.println(e.getMessage());
}
}
public static void main (String[] arrgs) {
Scanner scan = new Scanner(System.in);
String notes = scan.next();
for (int i = 0; i < notes.length(); i++) {
if (notes.charAt(i) == 'A') {
file = new File("src/musictranslator/MidA.wav");
setUp();
}
else if (notes.charAt(i) == 'B') {
file = new File("src/musictranslator/MidB.wav");
setUp();
}
else if (notes.charAt(i) == 'C') {
file = new File("src/musictranslator/MidC.wav");
setUp();
}
else if (notes.charAt(i) == 'D') {
file = new File("src/musictranslator/MidD.wav");
setUp();
}
}