如何在java编写的应用游戏中实现背景音乐
简介
Java小程序中现有的对声音播放的支持,使得声音播放的任务变得非常简单,但在应用程序中却有所欠缺。这个技巧将告诉你如何在Java应用程序中播放声音文件。(650字)
在Java应用中播放声音文件在现有的Java版本中并没有得到官方支持,但是不用担心,我们还是有办法的。这篇技巧将向您展示如何做到这一点——让我们从在applet中播放声音文件所需的基本步骤开始,然后慢慢转向Java应用程序中的支持。
在applet中播放声音文件非常简单,通常需要以下步骤:
创建一个音频剪辑对象。
加载一个。一个音频剪辑对象。
播放声音一次或循环播放。
别玩了
下面是相应的代码:
导入Java . applet . *;
audio clip AC = getAudioClip(getCodeBase(),sound file);
AC . play();//播放一次
AC . stop();//停止播放
AC . loop();//连续播放
在Java应用中用同样的代码播放声音文件似乎也是可行的。不幸的是,如果你这样做,编译器会报告一个错误。为什么?因为AudioClip对象及其方法getAudioClip()属于java.applet包——不属于应用程序包。好在我们也可以自己做一些改动来实现声音播放功能。
解决这个问题的技巧是利用Sun及其JDK提供的一些未记录的特性。首先看一下Sun JDK中的文件classes.zip(可以使用任何解压工具),发现里面不仅有java.applet等标准Java包,还有sun.audio .(在sun/audio的目录下。)
sun.audio包包含了播放声音文件所需的一切!下面是示例代码:
导入sun . audio . *;//导入sun.audio包
导入Java . io . *;
//**适当地将它添加到您的应用程序代码中
//打开音频文件的输入流。
InputStream in =新文件InputStream(文件名);
//从输入流创建AudioStream对象。
AudioStream as =新音频流(in);
//使用AudioPlayer类中的静态类成员“player”进行播放
//剪辑。
audio player . player . start(as);
//同理,停止音频。
audio player . player . stop(as);
如果要使用URL作为声音流的源,请用以下代码替换输入流以创建声音流:
audio stream as = new audio stream(URL . open stream());
如果你需要连续播放声音文件,那就有点复杂了:
//如前所述创建音频流。
//创建音频数据源。
AudioData data = as . get data();
//创建ContinuousAudioDataStream。
ContinuousAudioDataStream cas =新的ContinuousAudioDataStream(数据);
//播放音频。
audio player . player . play(cas);
//同理,停止音频。
audio player . player . stop(cas);
//小程序播放
【简介】使用applet播放声音时,需要先定义audioclip对象。getaudioclip方法可以先将声音赋予audioclip对象。Getaudioclip方法可以将声音赋予audioclip对象。如果只想播放一次声音,应该调用audioclip类的play方法。如果要循环剪辑声音,应该选择AudioClip类的loop方法。
(1)播放声音文件
有各种图像格式,如bmp、gif和jpeg。声音文件也是如此,wav和au是两种最常用的声音文件。目前java只支持au文件,但windows环境下常用wav文件,最好有一个工具把wav文件转换成au文件。
*播放声音的audioclip类。
audioclip类用于在java applet中播放声音,它在java.applet包中定义。
下面演示如何使用audioclip类播放声音。
加载名为sample.au的声音文件并播放它(sounddemo.java)
//源程序列表
导入Java . awt . *;
导入java.applet.*
公共类sounddemo扩展applet
{
公共空白油漆(图形g)
{
audio clip audio clip = getaudioclip(getcodebase()," sample . au));
//创建一个audioclip对象并用//getaudioclip方法初始化它。
g.drawstring("声音演示!",5,15);
audio clip . loop();//使用audioclip类的loop方法进行循环。
}
}
您需要将下面的html语句放入sounddemo.html文件中,为运行applet做准备。
< html >
< title >声音演示小程序
< applet code = " sound demo . class " width = 300 height = 200 >