0
Threadにおける音楽ファイルの乱れについて
シューティングのようなゲームを作っているのですが、Threadを使ってMIDIファイルを流しながら、そのプログラムを動かすと音が途切れたり、リズムがめちゃくちゃになって演奏されます。
これはJAVAの仕様としてとらえるしかないのでしょうか・・・?
もし解決策がありましたら、教えていただけると幸いです。
音楽のThreadのソースは以下のようにしています。
public class MusicThread implements Runnable{
@Override
public void run(){
MidiFilePlayer player=new MidiFilePlayer();
player.play("Bi2ssd.mid");
sleep(1000000);
player.bye();
System.exit(0);
}
static void sleep(long t){
try{
Thread.sleep(t);
}catch(InterruptedException e){
System.out.println("Err="+e);
}
}
}
//music
class MidiFilePlayer{
Sequencer sequencer;
MidiFilePlayer(){
try{
sequencer = MidiSystem.getSequencer();
sequencer.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);
sequencer.open();
}catch(MidiUnavailableException e){
System.out.println("Err="+e);
}
}
void play(String name){
try{
FileInputStream in=new FileInputStream(name);
Sequence sequence=MidiSystem.getSequence(in);
in.close();
sequencer.setSequence(sequence);
sequencer.start();
}catch(Exception e){
System.out.println("Err ="+e);
}
}
void stop(){
if (sequencer.isRunning()){
sequencer.stop();
}
}
void bye(){
stop();
sequencer.close();
}
}