如何在java编写的应用游戏中实现背景音乐

如何在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 >

编译运行小程序,屏幕上会显示一个小程序窗口,并伴有音乐。当您关闭小程序时,音乐停止。