论文039基于JAVA语言的多媒体音频播放器的实现.doc

上传人:苏美尔 文档编号:6035461 上传时间:2020-08-24 格式:DOC 页数:9 大小:44KB
返回 下载 相关 举报
论文039基于JAVA语言的多媒体音频播放器的实现.doc_第1页
第1页 / 共9页
论文039基于JAVA语言的多媒体音频播放器的实现.doc_第2页
第2页 / 共9页
论文039基于JAVA语言的多媒体音频播放器的实现.doc_第3页
第3页 / 共9页
论文039基于JAVA语言的多媒体音频播放器的实现.doc_第4页
第4页 / 共9页
论文039基于JAVA语言的多媒体音频播放器的实现.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《论文039基于JAVA语言的多媒体音频播放器的实现.doc》由会员分享,可在线阅读,更多相关《论文039基于JAVA语言的多媒体音频播放器的实现.doc(9页珍藏版)》请在三一文库上搜索。

1、目 录一 引言 1二JAVA的声音技术 1(一)声音文件类型简介 1 1.主要的声音文件类型如下: 1 2.JAVA声音引擎支持两种MIDI文件类型: 2 3.JAVA声音音频引擎 3(二)JAVA平台声音的简要介绍 3三基于Java的音频播放器的实现 5(一)设计过程 5(二)伪代码的设计 5(三)编译和运行 7四结论 7致谢 7参考文献 7基于JAVA语言的多媒体音频播放器的实现摘 要 本文介绍了基于JAVA语言的多媒体技术,简要分析了JAVA语言在多媒体设计中的应用。内容涉及声音播放的基本技术。并给出了里利用JAVA语言实现音频播放器的设计全过程。关键词 JAVA多媒体,音频,声音播放一

2、 引言JAVA是SUN公司推出的面向对象程序设计语言,它将面向对象,平台无关性,稳固性,安全性,多线程等特性集于一身,具有强大的动画,多媒体和交互功能,使WWW(WORLD WIDE WEB)进入一个全新的交互领域,是INTERNET网络应用开发最重要的语言之一。多媒体制作一直是计算机应用中最具魅力的部分,JAVA能制作诱人的多媒体WEB起始页,使您的WEB站点更具有吸引力。为此,我们先简要解释JAVA的声音技术,并利用此技术设计与实现了一个多媒体音频播放系统,其能对所播放的文件进行控制(包含暂停,停止等功能)。二JAVA的声音技术在JAVA2平台出现之前,JAVA语言只能处理电话音质的声音,

3、以单声道8KHZ的采样频率存储为-law AU文件。JAVA2平台增加了对AIFF,WAV以及三种MIDI文件类型的支持。所支持的三种MIDI文件格式为MIDI文件类型0、MIDI文件类型1、以及RMF。应用程序接口API1.0版提供了一个易于使用的工具集,使程序员可以访问底层的合成与演奏引擎,从而扩展了JAVA声音的应用。其中两个重要的领域是创建数字化音频以及乐器指令数字化接口MIDI。由于提供了大量的底层支持功能,所以程序员能输入输出声音,控制MIDI设备,并能查询系统运作情况。(一)声音文件类型简介1.主要的声音文件类型如下:AU - (扩展名为AU或SND)适用于短的声音文件,为Sol

4、aris和下一代机器的通用文件格式,也是JAVA平台的标准的音频格式。AU类型文件使用的三种典型音频格式为: 8位-law类型(通常采样频率为8kHz), 8位线性类型,以及16位线性类型。 WAV - (扩展名为WAV)由 Microsoft和 IBM共同开发,对WAV的支持已经被加进Windows 95并且被延伸到Windows 98. WAV文件能存储各种格式包括-law,a-law和 PCM (线性)数据。他们几乎能被所有支持声音的Windows应用程序播放。 AIFF - (扩展名为AIF或IEF)音频互换文件格式是为Macintosh计算机和Silicon Graphics (SG

5、I)计算机所共用的标准音频文件格式。AIFF和 AIFF-C几乎是相同的,除了后者支持例如-law和 IMA ADPCM类型的压缩。MIDI - (扩展名为MID)乐器数字接口MIDI是为音乐制造业所认可的标准,主要用于控制诸如合成器和声卡之类的设备。 MIDI文件不包含数字音频采样,而是包括一系列指令,这些指令控制把来自不同乐器上的音符序列合成乐曲。一些MIDI文件包含附加指令来为各种合成设置进行编程。 大多数合成器支持MIDI标准,所以在一个合成器上制作的音乐能够在另一个上播放。 有 MIDI接口的计算机能操纵 MIDI数据以产生新音乐或音响效果。例如,一个完整的音乐作品可以通过一个软件驱

6、动的命令转换成全新的形式。2.JAVA声音引擎支持两种MIDI文件类型: MIDI类型0文件-包含仅仅一个序列,所有相关的乐器部分被包含在同一个逻辑 磁道上。 MIDI类型1文件-包含多重的 磁道使得不同的乐器被逻辑地分开,从而使对声音的操作和重组更加容易。RMF - (扩展名为RMF)混合音乐格式是由Beatnik设计出来的混合文件类型,通过交互式设定将MIDI和音频采样封装在一起。RMF好比是一个所有音乐相关文件的容器。RMF也包含对有关版权的详细文件说明的支持。RMF文件可以包含多个由不同艺术家创作的存储为MIDI类型或音频采样类型的作品,每个都关联着相关的版权信息。3.JAVA声音音频

7、引擎JAVA声音引擎为多媒体创建,同时考虑了游戏设计和发布WEB内容。用标准的 MIDI文件、RMF文件、并且/或来自任何源的采样,该引擎将播放音乐或制造音响效果,同时尽可能少用CPU。它提供完全的播放控制,具有混合音响的能力并可实时地回应用户的输入。 JAVA声音引擎是软件 MIDI合成器,采样播放设备,以及16位立体混声器。它支持混合直到64位的立体MIDI声音和音频采样。它直接支持MIDI类型0和类型1文件以及从8位设备到16位乐器的波表合成。该引擎支持所有通用的 MIDI控制器并且包含象回声处理, LFO (控制过滤器或立体声设备)之类的特性,以及ADSR信封 (播放时整形采样)。即使

8、用上所有的功能,JAVA声音引擎在一个90Mhz的奔腾计算机上也占用不超过30的CPU时间。它还能通过有选择地禁用不需要的特性,使其变得更加高效一些。另外,它发布了存储在压缩的RMF音乐文件中的丰富的内容。Thomas Dolby Robertson的她用科学照亮了我,一首7分21秒的歌曲,如存储为CD音质的文件足足占用70M字节空间。如果以RMF格式存储只需大约636 KB,是120:1的减少,同时丝毫不减音质。(二)JAVA平台声音的简要介绍在JDK 1.0.x及JDK 1.1.x下, AudioClip接口提供下列机能:AudioClip接口播放循环停止恢复和播放声音最简单的方法是通过A

9、pplet类的play()方法。调用play()方法有如下二种方式: play()-带有一个参数,一个 URL对象,装载并演奏储存在 URL处的声音片断。play()-带有二个参数,基本 URL和文件夹路径名,装载并演奏声音文件。第一参数经常是对getCodeBase()或 getDocumentBase()的调用。 下列代码片断举例说明了直接播放 hello.au的方法。AU文件与小应用程序位于相同文件夹或目录。play(getCodeBase(), hello.au);play()一旦被调用立刻开始恢复和播放声音。如果声音文件不能被查找,将不会有出错信息,仅仅是沉默。启动和停止声音文件,或

10、循环播放,你必须用 applet的 getAudioClip方法把它装载进入 AudioClip对象,类似上面play()方法的参数,getAudioClip方法要用一个或两个参数,当作播放的指示。 第一个或唯一的一个参数是 URL参数,用来指示声音文件的位置,第二参数是文件夹路径指针。 下列代码行举例说明加载声音文件进入剪贴对象: AudioClip co = getAudioClip(getCodeBase(), horns.wav);getAudioClip()方法仅仅能被applet内调用。随着JAVA2的引入,应用程序也能用Applet类的newAudioClip方法装入声音文件。前

11、一例子可以改写如下以用于Java应用程序:AudioClip co = newAudioClip(horns.wav);在你已创建 AudioClip对象之后,你能用该对象调用play()、loop()以及stop()方法。如果 getAudioClip或 newAudioClip方法不能找到指定的声音文件, AudioClip对象的值将是空的。试着播放空对象会导致出错,所以标准的过程首先是对该条件进行检测。接下来是一个完整的程序设计示例,该程序将产生一个applet,当鼠标在该小应用程序applet范围内按下时会播放 flute+hrn+mrmba.au音乐样本。此AU示例文件与applet

12、在相同目录或文件夹下的。import java.applet.*;import java.awt.event.*;public class PlayAudio extends Appletimplements MouseListener AudioClip audio;public void init() audio = getAudioClip(getDocumentBase(),flute+hrn+mrmba.au);addMouseListener(this);public void mousePressed(MouseEvent evt) if (audio != null) audi

13、o.play();public void mouseEntered (MouseEvent me) public void mouseExited (MouseEvent me) public void mouseClicked (MouseEvent me) public void mouseReleased(MouseEvent me) 到此为止,我们已经简单介绍了JAVA的声音技术,下面我们该做的就是利用此技术制作一个基于JAVA音频播放器。三基于JAVA的音频播放器的实现(一)设计过程首先,该音频播放系统要有一个主窗口(见图一),作为使用该音频播放器的操作界面。其次,由于该音频播放器是

14、一个菜单驱动的多媒体应用,就是要对每个菜单项设立相应的操作;选择“播放”菜单项,则开始播放音乐,用户就可以听到声音了。选择“暂停”菜单项,则就暂停正在播放的音乐。选择“停止”菜单项,则就终止音频的播放。最后,来看看整个音频播放器系统的设计流程。如图二所示在了解整个系统的设计流程后,下面开始实现该音频播放器系统了。(二)伪代码的设计前面我们了解了构成媒体播放器GUI的各个部件,下面要开始“设想”一下这个程序的具体构造。在正式编写代码之前,我们先用伪代码的形式写出这个程序的运行过程,以后正式编写代码时只需把伪代码翻译成JAVA代码即可。下面给出了媒体播放器的伪代码描述:应用的类名称:Applica

15、tion1 Frame1main-构建应用程序-调用Frame1类-创建主窗口-主窗口各菜单初始化。下面来看看具体的代码实现:首先在Frame1类中声明如下两个变量:Player player; String path;Player 变量是Player类的对象,它是播放器的对象;path 表示当前打开媒体文件的目录。下面来看看“播放”菜单项的动作触发执行的代码: void jButton1_actionPerformed(ActionEvent e) player.start() ; 这里调用的类player中的start()方法。其次是播放界面的设计与实现:播放界面的源代码如下:privat

16、e void jbInit() throws Exception contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(null); this.setSize(new Dimension(400, 300); this.setTitle( Mp3 Player); jPanel1.setBounds(new Rectangle(17, 30, 353, 238); jPanel1.setLayout(null); jButton1.setBounds(new Rectangle(26, 163, 73, 25);

17、 jButton1.setText(u64ADu653E); jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this); jButton2.setBounds(new Rectangle(141, 163, 73, 25); jButton2.setSelected(false); jButton2.setText(u6682u505C); jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this); jButton3.setBounds(new

18、 Rectangle(256, 164, 73, 25); jButton3.setText(u505Cu6B62); jButton3.addActionListener(new Frame1_jButton3_actionAdapter(this); jPanel1.add(jButton3, null); jPanel1.add(jButton1, null); jPanel1.add(jButton2, null); contentPane.add(jPanel1, null); (三)编译和运行 JAVA代码分别保存在Application1.java,Frame1.java文件中,

19、则编译命令如下:javac Application1.java javac Frame1.java 编译成功后,编译器生成.class文件:Application1.clas, Frame1_jButton1_actionAdapter.class,Frame1_jButton2_actionAdapter.class Frame1_jButton3_actionAdapter.class ,Frame1.class.然后执行类Application1即可四结论 通过本次的毕业设计,成功的完成了基于JAVA的音频播放器的设计和实现。实现的了对多种声音文件的播放。通过自己编写的小应用程序来实现用

20、户的交互式输入和实现音乐控制。 由于作者的水平有限,关于声音文件的解码等等方面没有考虑到制作中去,这些方面有待进一步的探索和完善,同时也将是作者今后的工作中的研究任务。参考文献1宋现锋,趣味程序导学JAVA2,清华大学出版社,2002.012潘传帮等,JAVA实效编程百例,人民邮电出版社,2003.043徐雅静等,Jbulider6入门与提高,人民邮电出版社,2002.064陆正中等,Jbulider软件开发项目实践,清华大学出版社,2004.035电脑编程技巧与维护杂志社,JAVA编程精选集锦,科学出版社,2003.066美 Kenneth F. Krutsch , JAVA用户界面编程指南

21、,电子工业出版社,2002.027美Laura Lemay, JAVA 2 编程21天自学通,清华大学出版社,2002.04The Creation of Multimedia Using Java LanguageAbstract This paper briefly introduces the technology of JAVA Multimedia, especially on JAVA sound technology. It mainly elaborates the introduction of the sound technology and how to make the multimedia with JAVA language.Keywords JAVA, Sound, Creation of Sound technology

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1