Java游戏开发Java游戏开发
学习情境5学习情境5:音乐播放器
设计 08游戏3-2
目标:
?为游戏添加音效,能够用Java加载、播放游戏中的声音文件,并按要求控制播放。
任务:
?用Java设计一个播放多种声音的
程序。为电梯模拟游戏添加背景音乐。
目标与任务
学习过程
教师学生提供:声音播放案例模仿完成:声音播放案例
项目核心
功能扩展
提供:多个声音
列表播放关键代码提供:电梯游戏的声音和界面
协作完成:多个声音列表播放协作完成:电梯游戏的音效处理
应用升级
AU文件格式WAV文件格式AIFF文件格式MIDI文件格式
Java支持的音频文件格式Java支持的音频文件格式
声音文件有很多格式
这是Java语言最早的声音格式,扩展名为AU或SND,适用于短的声音文件。AU类型文件使用的三种典型音频格式为:8位单声道采样频率为8KHz的μ-law类型、8位线性类型以及16位线性类型。
AU声音文件AU声音文件
扩展名为WAV,由Microsoft和IBM共同开发,Windows9X
系统都支持此格式。
WAV声音文件WAV声音文件
扩展名为AIF或IEF,是Macintosh公司和SGI公司所共用的标准音频文件格式。
AIFF声音文件AIFF声音文件
扩展名为MID,是音乐制造业所认可的标准,主要用于控制诸如合成器和声卡之类的设备。Java2平台支持三种类型的MIDI文件公式,它们分别为MIDI文件类型O、MIDI文件类型1以及RMF。
MIDI声音文件MIDI声音文件
java.applet.Appletjavax.sound.midijavax.sound.midi.spijavax.sound.sampledjavax.sound.sampled.spi
与声音处理有关的包和类
javax.sound.midi包,为I/O、序列化和MIDI数据的合成提供接口和类。javax.sound.midi.spi包,为新MIDI设备、MIDI文件阅读器和编写器等的实现提供接口。javax.sound.sampled包,为捕获、处理和播放音频数据提供接口和类。javax.sound.sampled.spi包,为新音频设备、声音文件阅读器和编写器或音频格式转换提供抽象类。
与声音处理有关的包和类
使用play()方法装载与播放声音。格式如下:1、voidplay(URLurl)2、voidplay(URLurl,Stringname)一旦play()方法装载了声音文件就立即播放。如果找不到,play()方法不返回出错信息,反应到用户端就是听不到声音。play()方法只播放一遍声音文件
在Applet类播放声音Applet类播放声音
如果需要重复播放某个声音文件,就需要使用AudioClip接口提供的方法。AudioClip接口提供播放声音片段的方法。多个AudioClip项可以在同一时间播放,从而产生声音混合的效果。
重复播放声音
项目核心
一个基本的使用Applet类提供的方法播放声音文件的例子,运行结果如图所示:
步骤一:创建一个Applet小程序步骤一:创建一个Applet小程序
(1)通过继承Applet类来创建一个有三个按钮的容器importjava.applet.*;publicclassmAudioextendsApplet{}(2)定义成员属性包含3个成员属性,分别表示播放的声音的URL相对地址,当前播放的音频流和声音播放状态。
步骤一:创建一个Applet小程序步骤一:创建一个Applet小程序