java程序添加背景音乐的代码~
我的毕业设计也是一个小游戏程序——坦克大战。刚开始游戏逻辑界面完成的时候,想加音频也遇到了困难。一开始我想到了多线程,也就是自己游戏的画图线程占用了主线程。如果这个时候我在同一个线程中播放音频,肯定会阻塞音频流或者画图,所以这个时候我不得不额外增加一个单独的线程用于音频,已经达到了避免线程阻塞的效果。
但此时音频还是会不流畅(当然大部分情况下会在短暂的音效后消失)。主要问题是Java使用线程读取音频时,是通过流式读取的。此时可以考虑在程序加载前“预加载”音频,然后在需要时调用其回放线程,使用流式处理。这样做的好处是,音频会存储在内存中,需要时会正常出现。当然,后面还会出现。
我找到了下一个设定时间的代码,如下:
/**
*该方法是一种音频流缓冲方法,在调用音频播放线程时调用。
*/
public BufferedInputStream load bomb(){
BufferedInputStream buf bomb = null;
尝试{
File dir =新文件(" D:/Java/tankwar 2.6/");//要播放的文件的路径
File fo object = new File(dir," bomb . wav ");//音频名称
file inputstream file = new file inputstream(fo object);
buf bomb = new BufferedInputStream(file);
}catch(IOException e) {
system . out . println(e . getmessage());
}
返回bufbomb
}
/**
*缓冲核爆炸音频回放线程
*/
私有类炸弹音乐实现runnable {//通过流读取声音文件。
BufferedInputStream buf
公共无效运行(){
buf = load bomb();
尝试{
audio stream audio = new audio stream(buf);
AudioPlayer.player.start(音频);
}catch(IOException e){
e . printstacktrace();
}
}
}