Java_applet_音频播放器_第1页
Java_applet_音频播放器_第2页
Java_applet_音频播放器_第3页
Java_applet_音频播放器_第4页
Java_applet_音频播放器_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、1课题需求分析在Java2平台出现前,Java语言只能处理电话音质的声音,以单声道8KHz的采样 频率存储为u-lawAU文件。Java2平台增加了 AIFF、WAV以及三种MIDI文件类型的支持。所支持的三种MIDI文件格式为MIDI文件类型0、MIDI文件类型1以及RMFo2课程解决方案本程序有三个文件:是主文件,中的AppletSoundLoader类继承Thrwad负责为声音 文件获得AudioClip对象并把它加到AppletSoundList中去;中定义的AppletSoundList 继承自 Hashtable,提供 getClip (String)和 putClip(Audio

2、Clip,String)方法,分别从哈希表 中取得AudioClip对象和放置AudioClip对象。其结构是AppletSoundList中用AppletSoundLoader来装载制定URL的声音文件, AppletSoundLoader负责为声音文件产生AudioClip对象并添加到AppletSoundList中。在 SoundApplet 中则只是利用 AppletSoundList 类。3 课题实现主要的声音文件类型如下:AU (扩展名为AU或SND):适用于短的声音文件,为Solaris和下一代机器的通用 文件格式,也是Java平台的标准音频格式。AU类型文件使用的三种音频格式为

3、:8位 u-law类型(通常采用频率为8KHz), 8位线性类型以及16位线性类型。WAV (扩展名为WAV):由Microsoft和IBM共同开发,对WAV的支持已经被加进 Windows95并且被延伸到Windows98。WAV文件能存储各种格式包括u-law、a-law和 PCM (线性)数据。它们儿乎能被所有支持声音的Windows应用程序播放。AIFF (扩展名为AIF或IEF)音频互换文件格式是为Macintosh计算机和Silicon Graphics (SGI)计算机所共用的标准音频文件格式。AIFF和AIFF-C儿乎是相同的, 除了后者支持例如u-law和IMA ADPCM类

4、型的压缩。MIDI (扩展名为MID)乐器数字接口 MIDI是为音乐制造业所认可的标准,主要用 于控制诸如合成器声卡之类的设备。Java声音引擎支持两种MIDI文件类型:MIDI类型0文件-包含仅仅一个序列,所有相关的乐器部分被包含在同一个逻辑“磁 道”上。MIDI类型1文件-包含多重的“磁道”使得不同的乐器被逻辑地分开,从而使对声 音的操作和重组更加容易。RMF (扩展名为RMF)混合音乐格式是山Beatnik设计出来的混合文件类型,通过 交互设定将MIDI和音频采样封装在一起。RMF好比是一个所有音乐相关文件的容器。 RMF也包含对有关版权的详细文件说明的支持。RMF文件可以包含多个由不同

5、艺术家 创作的存储为MIDI类型或音频采样类型的作品,每个都关联着相关的版权信息。Java中用于播放声音的AudioClip接口提供下列机能:播放、循环、停止。恢复和 播放声音最简单的方法是通过Applet类的play ()方法。调用play ()方法有如下两种 方式:play ()带有一个参数,一个URL对象,装载并演奏储存在URL处的声音片段。 Play ()带有两个参数,基本URL和文件夹路径名,装载并演奏声音文件。第一参数经 常是对 getCodeBase()或 DocumentBase ()的调用。play () 一旦被调用立刻开始恢复和播放声音。如果声音文件不能被查找,将不会 有出

6、错信息,仅仅是沉默。启动和停止声音文件,或循环播放,必须用applet的 getAudioClip方法把它装载进入AudioClip对象,类似上面play ()方法的参数, getAudioClip方法要用一个或两个参数,当作播放的指示。第一个或唯一的一个参数是 URL参数,用来指示声音文件的位置,第二参数是文件夹路径指针。代码如下:importimportimport class SoundApplet extends J Applet implements ActionListener,ItemListener AppletSoundList soundList;String auFile

7、 = MsoundH;String aiffFile = nsoundflute+hrn+H;String midiFile = soundW;String rnifFile = HsoundV;String wavFile = soundW;String chosenFile;AudioClip onceClip, loopClip;JComboBox formats;JButton playButton, loopButton, stopButton; boolean looping = false;public void init() String fileTypes = auFile,

8、aiffFile,midiFile, rnifFile, wavFile);formats = new JComboBox(fileTypes);(0);Loopdd(controlPanel);startLoadingSounds();public void iteniStateChanged(ItemEvent e) chosenFile = (String)();(chosenFile);void startLoadingSounds() onceCIip = (chosenFile);0;(true);showStatus(HPlaying sound n + chosenFile +

9、 H.H);if (onceCIip = null) showStatus(HSound ” + chosenFile + n not loaded yet.n);return;)if (loopClip = null) showStatus(HSound H + chosenFile + H not loaded yet.”); return;return;importimport AppletSoundLoader extends Thread J Applet applet;AppletSoundList soundList;URL baseURL;String relativeURL:

10、public AppletSoundLoader(JApplet applet,AppletSoundList soundList,URL baseURL,String relativeURL) =applet;=soundList;=baseURL:=relativeURL:setPriority(MIN_PRIORITY); start();public void run() AudioClip audioClip = (baseURL. relativeURL);(audioClip, relativeURL);importimport and holds a bunch of audi

11、o files whose locations are specified class AppletSoundList extends J Applet applet;URL baseURL;public AppIetSoundList(JApplet applet. URL baseURL) super(5); 初始化哈希表的容疑为5=applet;=baseURL:public void startLoading(String relativeURL) new AppletSoundLoader(applet, this,baseURL, relativeURL):/通过相对URL从哈希表

12、中获得AudioClip public AudioClip getClip(String relativeURL) return (AudioClip)get(relativeURL);/将AudioClip对象放进哈希表,键值为relativeURL public void putClip(AudioClip clip. String relativeURL) put(relativeURL. clip);4课题运行及调试运行结果入下图所示:按下“Loop”时,显示如下图,自动循环播放文件。图界面图按下Stop,音乐播放暂停,显示如下图:图暂停播放图5小结山于编程经验的不足和知识水平有限,存在的问题比较多,播放器的功能太简单, 可进行的操作太少,一些功能在实现起来也不太理想。这些都有待进一步改善。在本项U开发的过程中,我学习了很多有关的知识。一些以前没有学得很杂实的课 程的内容,山于需要在实践中运用,刚开始我也感到很头痛。但回过头再去看有关的教 科书,经过一段时间的钻研,对与这些知识点的相关的背景,学习起来也越来越有兴趣。另外我还充分体会了从事软件开发工作需要特别严谨认真的

温馨提示

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

评论

0/150

提交评论