📄 music.java
字号:
package Game;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
public class music implements Runnable{
private Sequencer midi;
private String[] names={"music/1.mid","music/2.mid","music/3.mid","music/4.mid","music/5.mid"};
private Map<String,Sequence> map;
public music(){
initMap();
new Thread(this).start();
}
private void initMap(){
map = new HashMap<String, Sequence>();
for (String s : names) {
try {
Sequence s1 = MidiSystem.getSequence(new File(s));
map.put(s, s1);
} catch (InvalidMidiDataException ex) {
Logger.getLogger(music.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(music.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
private void createPlayer(String name){
try {
Sequence se=map.get(name);
midi.setSequence(se);
midi.start();
}catch (InvalidMidiDataException ex) {
Logger.getLogger(music.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void run(){
while(true){
try {
String name=names[0];
midi = MidiSystem.getSequencer(true);
midi.open();
createPlayer(name);
Thread.sleep(midi.getMicrosecondLength()/1000);
midi.close();
} catch (InterruptedException ex) {
Logger.getLogger(music.class.getName()).log(Level.SEVERE, null, ex);
} catch (MidiUnavailableException e) {
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -