音频播放器软件的设计与实现_毕业论文.doc
《音频播放器软件的设计与实现_毕业论文.doc》由会员分享,可在线阅读,更多相关《音频播放器软件的设计与实现_毕业论文.doc(51页珍藏版)》请在三一文库上搜索。
1、南开大学滨海学院南开大学滨海学院 本 科 生 毕 业 论 文(设 计) 中文题目:音音频频播放器播放器软软件的件的设计设计与与实现实现 外文题目:The Design and Implementation of Audio Player System 系 别: 计计算机科学系算机科学系 专 业: 计计算机科学与技算机科学与技术术 (数字影(数字影视动视动画技画技术术与与应应用方向)用方向) 完成日期: 2011 年年 4 月月 30 日日 2 南开大学滨海学院本科毕业论文(设计)诚信声明 本人郑重声明:所呈交的毕业论文(设计) ,题目基于智能卡 的远程身份认证系统设计与实现 是本人在指导教师的
2、指导下,独 立进行研究工作所取得的成果。对本文的研究做出重要贡献的个人 和集体,均已在文中以明确方式注明。除此之外,本论文不包含任 何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到 本声明的法律结果。 毕业论文(设计)作者签名:郭培赞郭培赞 日期: 2011 年 4 月 5 日 摘要 I I 音频播放器软件的设计与实现音频播放器软件的设计与实现 摘摘 要要 随着计算机和多媒体技术的不断发展以及个人计算机的普及,各种各样的 媒体文件、媒体播放器层出不穷,而MP3(MPEG Audio Layer3)格式以其体积 小、音质也有保证的特点成为使用最为广泛的音频格式,得到了绝大多数软件 和硬
3、件媒体播放器的支持,同时WAV格式作为无损的音频格式也独树一帜。如 今,软件市场上的媒体播放器百花齐放,如:MediaPlayer,酷我音乐盒和千千静 听等。高音质播放和低内存消耗是各种媒体播放器所追求的目标。 本文探索性地设计实现了一个支持播放列表和LRC歌词实时显示的音频播 放器的软件。本软件用Eclipse3.2平台,java语言及其相应的音频支持插件JMF 开发而成,设计思想为MVC,即Model-View-Control模式。该播放器实现了在 播放MP3的同时实时地显示LRC歌词,并且支持 WAV等。利用java开发的应 用程序具有平台可移植性,可以做到Once write,run
4、everywhere,同时有着比较 完善的功能。 论文首先介绍了java语言,MVC及JMF的基本概念,内容及章节安排。然后, 论文介绍了系统的设计目标,划分并设计了系统功能模块,包括:播放窗口模 块、播放列表管理模块、歌词实时显示模块、播放控制模块和播放信息模块等, 设计了媒体文件和歌词文件的处理流程。接着,论文介绍了本播放器的开发平 台,阐述了系统各功能的详细设计与实现。最后,论文介绍了系统的运行环境 及运行效果,并对各个部分进行了图示说明。 关键词:关键词:音频播放器平台无关 java MVC JMF Eclipse Abstract II The design and implemen
5、tation of the Audio Player System Abstract With the evolvement and popularization of computer science and multimedia technology , a variety of media files, media player software come into appearence one after another. MP3 (MPEG Audio Layer3) format also becomes the most widely used features audio fo
6、rmat, for its small size and sound quality .Its supported by the vast majority of software and the hardware media player . WAV audio formats is alseo famous for its no-damaging sound quality.Today, media player software on the market rises one after another, such as: MediaPlayer, cool boxes and TTPl
7、ayer and so on. The pursuit of high quality and low memory consumption is carried on by every media player . This article explores to design and implement a LRC supported audio player software with playlists and real-time display. The software used Eclipse3.2, java language and its corresponding aud
8、io support plug-ins developed with JMF as the develop platform.The main designing idea of the software is the MVC(the Model-View-Control )pattern. The player achieved in real time LRC display while playing MP3, and supports WAV and so on. Programmes developed with java is platform portability, you c
9、an do “Once write, run everywhere”, also has a fairly complete functionality. The paper firstly introduces basic concepts, contents and chapter arrangement of the java language, MVC and JMF. Then, the paper describes the design goal, and the system function modules, including: Mainframe module, list
10、Controller module, LRCController module, the Mp3Controller module and Mp3State module.The next is the introduction of the media files and lyrics files treatment process. After that, the paper introduces the development platform to explain the various features of the system detailed design and implem
11、entation. Finally, the paper describes the system operation environment and operating results.Every part has a illustration. Keywords: Audio Playerplatform portability Java MVC EclipseJMF 目 录 III 目目 录录 摘 要.I ABSTRACT.II 第 1 章 绪论1 1.1 研究背景.1 1.2 JAVA语言的特性 .1 第 2 章 关于 JMF 技术.3 2.1 关于 JMF 技术 .3 2.2 JMF
12、 常用类 4 2.2.1 数据源(DataSource).4 2.2.2 媒体定位器(MediaLocator).4 2.2.3 播放器(Player) .4 2.2.3 处理器(Processor)6 2.2.4 数据池(DataSink).7 2.2.5 数据格式(Format)7 2.2.5 管理器(Manager) .8 2.3 事件模型.8 第 3 章 系统架构和功能模块设计11 3.1 MVC 模式概述.11 3.2 系统目标.11 3.3 系统功能模块概要设计.12 3.3.1 用户界面模块13 3.3.2 播放控制模块14 3.3.3 播放信息模块15 3.3.4 播放列表控制
13、模块18 3.3.5 歌词控制模块18 第一章 绪论 IV 3.4 音频文件播放逻辑19 3.4.1 对音频文件的传递19 3.4.2 对歌词文件的传递20 3.4.3 播放控制流程21 第 4 章 系统详细设计与实现22 4.1 开发平台及环境.22 4.2 用户界面模块详细设计与实现.22 4.2.1 对播放拖动条添加拖动事件监听器.23 4.2.2 音量拖动条添加拖动事件监听器.23 4.2.3 对鼠标点击放开事件添加监听器.24 4.2.4 时间线程.25 4.2.5 最小化托盘.26 4.2.6 更新 TimeLabel 的小算法.27 4.3播放控制模块详细设计与实现 28 4.3
14、.1 播放函数.28 4.3.2 停止函数.29 4.3.3 下一首/上一首函数30 4.3.4 暂停函数.30 4.3.5 对播放至文件播放至末尾结束事件的处理.30 4.4 播放信息模块详细设计与实现.32 4.4.1 播放信息模块.32 4.4.2.播放列表.32 4.4.3 歌曲信息节点.33 4.5 播放列表控制模块详细设计与实现.35 4.5.1 打开文件函数.35 4.5.2 保存/装载列表函数.36 4.6 歌词控制模块详细设计与实现.37 第 5 章 系统运行环境及效果39 5.1 系统运行环境.39 5.2 系统运行效果.39 5.3 不足与改进.40 第一章 绪论 V 第
15、 6 章 结束语41 参考文献42 致谢43 第 1 章 绪论 1 第第 1 章章 绪论绪论 1.1 研究背景研究背景 随着个人电脑的普及,多媒体信息的传播和应用已经深入我们生活中的各 个方面。其中数字音频凭借着其占用存储空间小,声音质量高的特点风靡全球, 传统磁带和 CD 所统治的半壁江山已经成为了数字音频的天下。 当微软 Windows 的局限性和缺点开始暴露出来的同时,多样化的操作系统 平台如 Solaris,Linux 以及 MacOS 等操作系统各自拥有不俗的表现以及庞大的 用户群。面对繁多的操作系统平台,一款具有通用性的音频播放软件则是必不 可少的。 本音频播放软件采用 Java
16、语言编写,旨在利用 Java 的平台无关性特点, 做出一款通用性强、占用空间少却五脏俱全的音频播放器。 1.2 Java 语言的特性语言的特性 首先,从面向对象的特性来看,Java 是一种完全的面向对象设计语言。 Java 的多态主要是建立在后期绑定(Late Bingding)或叫动态绑定(Dynamic Binding)基础之上的,这样 Java 先天就具备了对对象类型的自动判断能力。而 C+是不支持动态绑定的,绑定动作发生在编译期而不是执行期,所以 C+要 实现多台的效果必须要使用虚函数。此外虽然 C+语言支持封装和继承,但多 态仍然是建立在编译时绑定的基础上,必须要通过虚函数实现。不仅
17、如此, C+语言的指针操作允许使用 goto 语句,容易产生歧义的多重继承等特性也使 C+不能严格符合面向对象的思想。 其次,Java 具有绝对的平台无关性,其使用一种虚拟机作为中间层来屏蔽 平台差异。Java 的源程序经过编译产生类文件,类文件结构不同于传统的编译 器生成的二进制文件,必须经过虚拟机的解释才能运行,因此 Java 被认为是一 种解释性语言。虚拟机作为中间层负责把编译好的类文件转换为不同平台的指 令。而对于不同的 C,C+编译器,各种数据类型所占用空间有可能不一样, 这种差异会影响程序的可移植性。 第一章 绪论 2 此外,在内存管理方面,Java 在其虚拟机内部实现了垃圾内存自
18、动回收功 能,能够自动判断那些内存不再被用户使用,这样就让用户在系统设计时从繁 杂的内存管理工作中解脱出来。C 和 C+语言分配的内存空间必须由用户在不 使用的时候进行回收,容易产生内存回收不充分的问题,形成内存漏洞。 然而,Java 也有瑕疵,由于是一种解释型语言,编译后的 Java 类文件不能 直接被操作系统执行,需要虚拟机的解释,因此其效率和 C,C+相比有一定 差距。在运行时,Java 编写的软件需要操作系统中安装有虚拟机,所以程序的 发布相对繁琐。总的说来, Java 编程语言是编程语言是 简单与面向对象的简单与面向对象的 分布式、安全与鲁棒的分布式、安全与鲁棒的 解释执行与高性能的
19、解释执行与高性能的 多线程与动态执行的多线程与动态执行的 Java 应用程序的编译运行过程如图 1-1 所示 Java source code Java Bytecodes Java Complier Networ k Class Loader bytecode verifier Interpreter Runtime Code generator Hardware 图 1-1 第 2 章 关于 JMF 技术 3 第第 2 章章 关于 JMF 技术技术 2.1 关于 JMF 技术 JMF(Java Media Framework) ,Java 媒体架构,是对应 Java 2 平台标准版 (J2
20、SE)的一种可选用的应用编程接口(API)软件包,它为音频和视频等媒体内 容的捕获、回放、传输和编码转换等提供了一个统一的架构。 JMF 技术提供了先进的媒体处理能力,从而扩展了 Java 平台的功能。这些 功能包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式和编码的 支持,如 M-JPEG、H.263、MP3、RTP/RTSP (实时传送协议和实时流转协议) 、Macromedias Flash、IBM 的 HotMedia 和 Beatniks 的 Rich Media Format (RMF)等。 JMF 2.1.1 还支持广受欢迎的媒体类型,如 Quicktime、Micros
21、ofts AVI 和 MPEG-1 等。此外,JMF 软件中包括了一个开放的媒体架构,可使开发人员灵 活采用各种媒体回放、捕获组件,或采用他们自己的定制的内插组件。 Java Media Framework(JMF)是构建在 Java Sound 之上的一层。JMF 实际 上将 Java Sound 用于其音频处理。JMF 支持更多音频格式和更多回放功能,但 缺少 Java Sound 的低层访问。另外,标准 JDK 发行版不包括 JMF 而包括 Java Sound。 Java Sound: 添加音频和 MIDI 支持 与 JDK 1.3 及更高版本一起提供 是轻量级的 本身支持相对较少的音
22、频格式(AIFF、WAV 和 AU) 通过 Java Sound 的服务供应商接口(SPI)可以进行扩展 JMF: 添加对音频、视频和其它基于时间的数据的支持 提供多种媒体格式的同步和控制功能 当前没有与任何 JDK 一起提供 本身支持许多音频格式(AIFF、WAV 等)以及 MPEG 和其它格式 包含可扩展的编码器解码器媒体支持 第 2 章 关于 JMF 技术 4 2.2 JMF 常用类 JMF 的常用类包括以下几个: 数据源(DataSource) 媒体定位器(MediaLocator) 播放器(Player) 处理器(Processor) 数据池(DataSink) 数据格式(Forma
23、t) 管理器(Manager) 2.2.1 数据源(DataSource) 在 JMF 中,DataSource 对象就是数据源,它可以是从采集设备获得的数据, 也可以是一个多媒体文件,也可以是从互联网上下载的数据流。对于 DataSource 对象,一旦你确定了它的位置和类型,对象中就包含了多媒体的位 置信息和能够播放该多媒体的软件信息。当创建了 DataSource 对象后,可以将 它送入 Player 对象中,而 Player 对象不需要关心 DataSource 中的多媒体是如何 获得的,以及格式是什么。 2.2.2 媒体定位器(MediaLocator) DataSource 通常用
24、两种方式来定义,媒体定位器(MediaLocator)或 URL(Universal Resource Locator) 。MediaLocator 类似于 URL,并且可以由 URL 来构造,即使在没有安装相应的协议处理机制的情况下,也能构造 MediaLocator(在 Java,只有在系统上安装了 URL 协议的处理机制的情况下, 才能构造一个 URL) 。MediaLocator 用来定位采集设备、本机的媒体文件、网 络上的媒体文件以及网络 RTP 流。 2.2.3 播放器(Player) 第 2 章 关于 JMF 技术 5 如图 2-1 所示,播放器(Player)对象将音频、视频数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音频 播放 软件 设计 实现 毕业论文
链接地址:https://www.31doc.com/p-3976774.html