java添加音乐_Java加入背景音乐

这篇博客记录了如何在Java程序中使用AudioClip类添加和播放背景音乐,包括遇到的问题及解决方法。AudioClip支持.wav、.mid、AIFF、AU、RMF格式,但对格式要求严格。文中提到了三种播放音乐的方法,推荐使用通过File对象创建URL,然后创建AudioClip并播放的方法,因为这种方法在Java Application和Applet中都适用。
摘要由CSDN通过智能技术生成

近期有几个师妹找我给她们的Java期末作业加入背景音乐,非常久不琢磨Java的我花费整晚才搞定,羞愧。在博客中记录下来。警示自己。也帮助一下大家。

Java中能够通过AudioClip类来实现音乐播放。循环等操作。AudioClip支持的音乐格式有.wav、.mid、AIFF、AU、RMF,可是格式要求相当严格。

我用AudioClip播放我自己录的一段wav文件就没有声音。让我纠结了非常久。最后才发现我的wav文件内容没有写文件尾,对于格式要求严格的AudioClip而言是无法识别的(这个问题困扰了我整晚)。

AudioCLip基本的方法有:play()播放依次声音;loop()循环播放音乐。stop()停止播放。

做法一:

InputStream is =null;

AudioStream as = null ;

is = getClass().getResourceAsStream("a.wav");

try {

as = new AudioStream(is);

} catch (IOException e) {}

AudioPlayer.player.start(as);

此方法将音乐文件放入流中在播放,仅限于Java Application。easy报错,空指针异常。或者是流异常,不推荐。

做法二:

String   music  = "a.wav";

AudioClip   clip   =   Applet.newAudioClip(getClass().getResource(music));

次方法在Applet中执行没有问题。可是Application中getclass()会返回空指针,导致失败。

推荐做法:

private URLurl;

private AudioClipac;

File f1 = new File("C:/3.wav");

try {

url= f1.toURL();

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

ac= Applet.newAudioClip(cb1);

ac.play();

此方法没有限制,Java程序都支持。

完全原创的一个java俄罗斯方块游戏,实现了网络对战、道具使用、背景音乐播放、音效播放等功能。但网络对战和道具使用部分尚有些小问题,仍需要测试,因为没时间做了,发上来供大家下载,如果哪位有兴趣,想一起研究,可发邮件至lijiangui2002@163.com 类列表: backgroundmusic.java背景音乐播放类 blockcanvas.java方块类 bomp.java炸弹类(炸弹的消行规则是坠毁所占行数的方块) control.java主类 createdialog.java对话框类 data.java游戏与地图数据接口 gamecontrol.java游戏控制类 imagecapture.java图像采集与发送类 imageshow.java图像接收与显示类 jframe.java界面GUI类 nextpanel.java下一个方块画布类 soundeffect.java音效播放类 -------------------------------------------------------------------- 说明,内含编译好的j可执行jar程序,在正确安装jre的计算机上双击游戏程序即可运行,如果没有正确安装jre,可以编译游戏源文件运行。游戏主类为control.java ---------------------------------- 最初开发时,我把它定义一个比较有创意的游戏,但是最终因为没有时间而作罢,我的目的是游戏能够利用道具进行网络对攻,以增加游戏的趣味性。因为时间,我只设计出一种道具——炸弹,更糟糕的是,这唯一的一种道具都没有实现网络对攻, 只能随机地出现,这是让我很遗憾的地方。所以,哪位朋友对这个游戏有兴趣的话,咱们可以共同研究研究
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值