本帖最后由 Jesp 于 2020-7-5 00:50 编辑
前言:
最近实训结束,虽然我的坦克大战项目没有做完美,但是我对付出多少回报多少,这一点上我还是比较满意的,因为很多时间有在玩电脑游戏,只有少时间内编写项目和修改项目,当然一天大概有4-5小时学习/专研项目代码的错误。后来...等项目交上去以后,我才想到程序内加个游戏背景音乐和一些效果音乐肯定更好(更能得高分),今天考了一天试,于是趁中午俩小时的时间,找到了播放背景音乐的方法,刚开始上代码是不会播放音乐的,有些错误是音乐地址问题,有些错误是方法调用,也有导包问题,反而言之很多错误都解决了,考前几分钟运行完美播放,接下来我们认真康康怎么整!!!
准备:
除了你的程序,和已经做好的心里准备,还需要一首你选中的音频,一般常见的音频就是.mp3格式,但是今天的这个要.wav格式的音频,如果不是,请用格式转换处理好
(格式工厂:http://www.pcfreetime.com/formatfactory/CN/download.html)
开始:
首先在有窗体的情况下,我这里用的是《坦克大战》窗体,相当于给《坦克大战》程序添加背景音乐。
思路 当打开窗体的时候自动播放自定义的背景音乐 ---> 定义一个背景音乐类 ----> 写出播放音乐的方法 ----> 调用到打开窗体的方法内
-------> 让窗体运行的同时音乐就播放,窗体关闭的时候,音乐线程随之“Si”掉
这个是我的背景音乐类
背景音乐源码
这个是我的打开窗体的类,把背景音乐类的run方法,也就是播放音乐的方法调用到运行窗体的方法内,当然,子弹效果都可以类似这样写,首先把背景音乐弄好,然后检测到子弹打中敌人后,也就是有爆炸效果的同时,播放爆炸的配音,达到更逼真的效果,这波“想象”真的完美,我实训的时候咋就没往进去写呢,不说了,发稿睡觉,应该挂不了,问题不大。。。。。
需要用到的包——导包
[Java] 纯文本查看 复制代码 import javax.sound.sampled.*;
import java.io.IOException;
import java.io.InputStream; 代码正文:
[Java] 纯文本查看 复制代码
public class Music extends GameWindow{ // 此处Music类继承GameWindow
public void run() {
try {
Clip bgm = AudioSystem.[i]getClip[/i](); // 取个小名叫bgm吧!
InputStream is = Music.class.getClassLoader().getResourceAsStream("beijingMusic.wav"); // 背景音乐路径,记得加后缀名.wav(可以把音乐放在包下面,更方面,即使打包发送好友也可以播放)
AudioInputStream ais = AudioSystem.[i]getAudioInputStream[/i](is);
bgm.open(ais); // 打开音乐
bgm.start(); // 播放
bgm.loop(Clip.[i]LOOP_CONTINUOUSLY[/i]); // 循环播放
System.[i]out[/i].println("播放音乐,成功!"); // 打印“播放音乐,成功!”
} catch (LineUnavailableException | UnsupportedAudioFileException | IOException e) {
e.printStackTrace();
}
}
}
当然也可以弄MP3格式的音频,不过需要外界导入包,今晚了,就先总结到这。
运行视频录制:
背景音乐运行录屏.txt
(35 Bytes, 下载次数: 6)
|