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();

}

}

}