📄 midiplayer.java
字号:
import javax.sound.midi.*;
import java.io.*;
class MidiPlayer implements Runnable{
protected Sequence m_Midi;
protected Sequencer m_player;
public boolean m_bOk;
private Thread m_thread;
MidiPlayer(String FileName){
File file=new File(FileName);
m_bOk=true;
m_thread=null;
try{m_Midi=MidiSystem.getSequence(file);}
catch(InvalidMidiDataException ie){m_bOk=false;}
catch(IOException ie){m_bOk=false;}
try{m_player=MidiSystem.getSequencer();}
catch(MidiUnavailableException ie){m_bOk=false;}
}
public void run(){
while(m_thread!=null){
try{m_player.open();}
catch(MidiUnavailableException ie){}
try{m_player.setSequence(m_Midi);}
catch(InvalidMidiDataException ie){}
m_player.start();
while(m_player.isRunning()&&m_thread!=null){
try{Thread.sleep(2000);}
catch(InterruptedException ie){}
}
m_player.close();
}
}
public void play(){
if(m_player.isRunning()==false){
try{m_player.open();}
catch(MidiUnavailableException ie){}
try{m_player.setSequence(m_Midi);}
catch(InvalidMidiDataException ie){}
m_player.start();
}
}
public void loop(){
if(m_thread==null){
m_thread=new Thread(this);
m_thread.start();
}
}
public void stop(){
if(m_thread!=null&&m_thread.isAlive())m_thread.yield();
m_thread=null;
if(m_player.isRunning())m_player.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -