java游戏开发学习情境5音乐播放器设计.ppt_第1页
java游戏开发学习情境5音乐播放器设计.ppt_第2页
java游戏开发学习情境5音乐播放器设计.ppt_第3页
java游戏开发学习情境5音乐播放器设计.ppt_第4页
java游戏开发学习情境5音乐播放器设计.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaJava游戏开发游戏开发 学习情境学习情境5 5:音乐播放器设计:音乐播放器设计 08游戏3-2 目标与任务目标与任务 目标: 为游戏添加音效,能够用Java加载、播放游戏中的声 音文件,并按要求控制播放。 任务: 用Java设计一个播放多种声音的程序。为电梯模拟游 戏添加背景音乐。 学习过程学习过程 项目核心 功能扩展 应用升级 教师学生 提供: 声音播放案例 模仿完成: 声音播放案例 提供: 多个声音列表 播放关键代码 协作完成: 多个声音列表 播放 提供: 电梯游戏的 声音和界面 协作完成: 电梯游戏的 音效处理 JavaJava支持的音频文件格式支持的音频文件格式 AU文件格式 WAV文件格式 AIFF文件格式 MIDI文件格式 声音文件 有很多格 式 AUAU声音文件声音文件 这是Java语言最早的声音格式, 扩展名为AU或SND,适用于短的声音文 件。AU类型文件使用的三种典型音频 格式为:8位单声道采样频率为8KHz的 -law类型、8位线性类型以及16位线 性类型。 WAVWAV声音文件声音文件 扩展名为WAV,由Microsoft和 IBM共同开发,Windows 9X系统都 支持此格式。 AIFFAIFF声音文件声音文件 扩展名为AIF或IEF,是 Macintosh公司和SGI公司所共用的 标准音频文件格式。 MIDIMIDI声音文件声音文件 扩展名为MID,是音乐制造业所认可的 标准,主要用于控制诸如合成器和声卡之 类的设备。Java 2平台支持三种类型的 MIDI文件公式,它们分别为MIDI文件类型O 、MIDI文件类型1以及RMF。 与声音处理有关的包和类与声音处理有关的包和类 java.applet.Applet javax.sound.midi javax.sound.midi.spi javax.sound.sampled javax.sound.sampled.spi javax.sound.midi包,为I/O、序列化和MIDI 数据的合成提供接口和类。 javax.sound.midi.spi 包,为新MIDI设备、 MIDI文件阅读器和编写器等的实现提供接口。 javax.sound.sampled 包,为捕获、处理和播 放音频数据提供接口和类。 javax.sound.sampled.spi 包,为新音频设备 、声音文件阅读器和编写器或音频格式转换提供 抽象类。 与声音处理有关的包和类与声音处理有关的包和类 在在AppletApplet类播放声音类播放声音 使用play()方法装载与播放声音。格式 如下: 1、void play(URL url) 2、void play(URL url,String name) 一旦play()方法装载了声音文件就立即 播放。如果找不到,play()方法不返回 出错信息,反应到用户端就是听不到声音 。 play()方法只播放一遍声音文件 重复播放声音重复播放声音 如果需要重复播放某个声音文件,就需要使用 AudioClip接口提供的方法。 AudioClip接口提供播放声音片段的方法。 多个AudioClip项可以在同一时间播放,从而产 生声音混合的效果。 项目核心项目核心 一个基本的使用Applet类提供的方法播放声 音文件的例子,运行结果如图所示: 步骤一:创建一个步骤一:创建一个AppletApplet小程序小程序 (1)通过继承Applet类来创建一个有三个 按钮的容器 import java.applet.*; public class mAudio extends Applet (2)定义成员属性 包含3个成员属性,分别表示播放的声音的 URL相对地址,当前播放的音频流和声音播 放状态。 步骤一:创建一个步骤一:创建一个AppletApplet小程序小程序 (3)在Applet的子类中覆盖Applet类的 init()方法 init()是java.applet.Applet类中的方法, 当applet程序首次被打开时,会执行此方法 定义的程序代码。当applet程序首次被打开 时,init()将第一个被自动执行。 在其中调用getAudioClip来初始化当前要 播放的音频流: audio=getAudioClip(new URL(getDocumentBase(),hurl); 步骤二:对步骤二:对AppletApplet容器中的按钮动容器中的按钮动 作进行事件处理作进行事件处理 (1)为Applet容器添加按钮动作监听器 由于要对Applet容器中发生的三种按钮按下事件进行分别响 应,可以直接在 init()方法中对三个按钮添加语句: addActionListener(this); (2)实现ActionListener接口 public class mAudio extends Applet implements ActionListener public void actionPerformed(ActionEvent e) 步骤一:创建一个步骤一:创建一个AppletApplet小程序小程序 这里需要根据事件源即按钮的不同作出分别动 作,可以通过e.getActionCommand()来判 断是哪个按钮被按下。 AudioClip类中的play,stop,loop方法分别对 应播放、停止和循环播放功能。 功能扩展功能扩展 在上面程序的基础上要求增加一套按钮用于播 放另一个音乐,2个音乐可以同时播放,制造 一种混音效果。运行情况如下: 扩展步骤一:增加一套按钮扩展步骤一:增加一套按钮 定义令一组成员属性 包含新的3个成员属性,分别表示播放的第二段声音 的URL相对地址,当前播放的音频流和声音播放状态 。 改写init()方法 在其中调用getAudioClip来初始化另一个要播放的音 频流: Audio2=getAudioClip(new URL(getDocumentBase(),hurl2); 并且添加一套新按钮,重新布局。 扩展步骤二:对扩展步骤二:对AppletApplet容器中的按容器中的按 钮重新进行事件处理钮重新进行事件处理 为Applet容器中的新按钮添加事件监听器 由于要对Applet容器中发生的三种按钮按下事件进行分别响应,可 以直接在 init()方法中对三个按钮添加语句: addActionListener(this); (4)实现ActionListener接口,在actionPerformed方法中 对六个事件源作出相应 public class mAudio extends Applet implements ActionListener public void actionPerformed(ActionEvent e) 完成情况评价标准完成情况评价标准 完成(1)-(4),得到最终结果的正确输出 ,100分。 完成(1)-(3),正确生成菜单,80分。 完成(1)-(2),正确生成菜单,60分。 功能扩展之案例二功能扩展之案例二 编写一个applet让用户从几个音频片段中选择 来播放,程序运行画面如下: 功能扩展之案例二功能扩展之案例二 / 程序中声音的名字 public final String AUDIO = “ping“, “pop“, “return“, “salvation“, “shuffle“, “squish“ ; / 包含上述字符串数组的下拉框 private Choice choice; / 真实的音频片段数据 private AudioClip clips; 功能扩展之案例二功能扩展之案例二 / 控制播放停止的按钮 private Button playClip; private Button loopClip; private Button stopClip; private Button stopAllClips; / 跟踪当前哪些音频片段在播放 private boolean clipsPlaying; 应用升级应用升级 问题陈述: 在电梯系统的模拟程序里,公司要求在模拟中 加入声音。例如,当一个人走路时,应能听到 脚步声。每当按下或者复位一个楼层按钮或者 电梯按钮时,应当听到单击声。电梯到达时铃 声应当响起,且在门打开时或者关上时,门应 当吱吱作响。最后,当电梯在楼层间运行时, 应播放“电梯音乐”。 应用升级应用升级 解决思路: 编写类SoundEffects,将声音文件转换成 java.applet.AudioClip对象 关键代码关键代码 try return Applet.newAudioClip( getClass().getResource( prefix + soundFile ) ); / return null if soundFile does not exist catch ( NullPointerException nullPointerException ) return null; 应用升级应用升级 类SoundEffects包含

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论