当前位置:首页>> >>


基于java的MP3播放器设计与实现.rar

收藏

资源目录
    文档预览:
    编号:20180913143530275    类型:共享资源    大小:2.63MB    格式:RAR    上传时间:2018-09-13
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    40
    金币
    关 键 词:
    基于 java MP3 播放 设计 实现
    资源描述:
    太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸ⅰMP3 播放器的设计与实现 摘 要声音是信息交流的源头,而有规律的声音可以创造意境,给人以美的享受,当其与图形界面相互交融的时候,整个世界就被丰富了起来。多媒体技术是以声音为基础,再加上日益进步的科技还有超前的思维,使得电脑的性能日益提高,与之相关的 Java技术也不断被改进,虽然在有的方便还有些欠缺,但是音频技术的出现,为 Java 语言的发展指出了一条更加光明的方向。Java 语言有着占用空间小、可嵌入、跨平台性的优良特点为 Java 语言的应用提供了很好的平台。本播放器基于 JMF 设计,运用 Java 语言实现列表的新建与清空。歌曲的添加、删除、重命名。简单的播放、暂停、歌曲的上一首、下一首切换、并选择播放模式。音量的调节,歌曲属性的查看等简单功能。能够满足一般需求的简易播放器。关键词:声音;播放器;JMF ;Java ;Eclipse太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸ⅱDesign and implementation of music playerAbstractThe sound is the source of information interaction and the sound of the rhythm can create the artistic conception, give people the enjoyment of beauty, when the sound and graphical interface blend with each other, the world will be widely riched . Multimedia technology is based on sound, coupled with the increasing progress of science and technology and advanced thinking, making computer performance has improved, Java and related technologies have been improved, although in some convenient also some lack, but audio technology, the development of Java language points a brighter the direction of. The Java language has provided a good platform for application of small space occupation, good characteristics of embedded cross platform for Java language. The player is designed by JMF, using Java language to create a new list and clear the list. Add songs, Delete songs, rename songs. Simple to play, pause, previous track, next track switch songs, and select the play mode. Adjust the volume, song attributes View other simple functions. Easy to meet the general needs of the player.Key words: sound; music player; JMF; Java; Eclipse太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸1目 录摘 要 .............................................................ⅠABSTRACT...........................................................Ⅱ1 引言 ..............................................................11.1 项目背景 ......................................................11.2 技术现状与发展趋势 ............................................21.3 ECLIPSE中使用 JMF ..............................................22 技术背景 ..........................................................42.1 JMF 结构 .......................................................42.1.1 定义 JMF...................................................42.1.2 JMF 高层结构...............................................72.1.3 时间模型 ..................................................52.1.4 管理器 ....................................................82.1.5 事件模型 ..................................................82.1.6 数据模型 ..................................................62.1.7 控制 ......................................................92.2 重要实例:PLAYER 对象 ..........................................103 系统分析与概要设计 ...............................................163.1 系统分析 .....................................................163.1.1 可行性分析 ...............................................163.1.2 需求分析 .................................................163.2 什么是音频 ...................................................173.2.1 音频 .....................................................173.2.2 常见音频格式 .............................................173.3 常见播放器 ...................................................193.3.1 千千静听 .................................................193.3.2 酷狗 .....................................................193.3.3 QQ 音乐...................................................193.4 功能模块设计 .................................................194 系统设计实现及关键代码 ...........................................214.1 基本结构 .....................................................214.2 界面设计 .....................................................224.3 播放 .........................................................224.4 菜单设计 .....................................................244.5 列表设计 .....................................................275 系统测试 .........................................................295.1 总体功能测试描述 .............................................295.2 功能测试的目的与内容 .........................................295.2.1 界面测试 .................................................295.2.2 播放测试 .................................................33太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸25.2.3 菜单测试 .................................................345.3 功能测试总结 .................................................37参考文献 ...........................................................36结 论 ...........................................................37致 谢 ...........................................................38外文文献 ...........................................................39中文翻译 ...........................................................59太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸31 引言1.1 项目背景在信息不断变更和交互的时代,听歌已经变得非常流行不光是个人的行为也不再是局限于本地资源。网络音乐不断流行,随之而来的是网络音乐播放器的火热,很多的网页或者网站上都提供了很好的比较规范的音乐搜索项目,还有许多知名的音乐网站提供免费的音乐下载,形成了资源共享的局面,听歌已经不是许多年前只能依靠录音机或者随身听来实现了。不光如此,国内的国外的歌手的作品也都进入到了网络上来,所以越来越多的不同风格的音乐在网络上都能够呈现出来。但是,在网络收费还是较高的情况下,大多数人们还是倾向把音乐文件下载到本地来听,这样方便在无网络的时候也可以欣赏音乐,故而下载好的音乐文件就必须有个软件能够使它播放出来,因此,MP3 播放软件的制作就有了比较重要的意义了。现在存在的多媒体播放器种类繁多,样式也比较新颖,还有就是用各种不同语言和平台事项的。Microsoft 公 司 1998 年 推 出 了 Visual C++6. 0, 它 是 支 持 Win32 平 台 应 用程 序 (application)、 服 务 (service)和 控 件 (control)开 发 的 可 视 化 编 程 的 集 成环 境 。 与 VC++5. 0 的 最 大 不 同 之 处 是 它 的 帮 助 功 能 更 强 大 , MSDN(Microsoft Developer Networking)为 包 括 VC++6. 0 在 内 的 所 有 微 软 的 程 序 产 品 提 供 在 线 帮助 ; 另 外 , 类 的 对 象 的 可 用 成 员 函 数 、 成 员 变 量 及 函 数 的 参 数 类 型 与 个 数 都 能 动 态显 示 在 屏 幕 上 , 用 户 无 须 记 住 那 些 复 杂 而 又 枯 燥 乏 味 的 函 数 名 及 复 杂 的 参 数 , 这 无疑 使 得 用 VC++编 程 更 加 容 易 。 所 以 VC+ + 6. 0 可 谓 是 Microsoft 公 司 的 王 牌 产品 , 编 程 功 能 强 大 而 赢 得 广 大 程 序 的 偏 爱 。MP3 是 一 种 音 频 压 缩 技 术 , 其 全 称 是 动 态 影 像 专 家 压 缩 标 准 音 频 层 面3( Moving Picture Experts Group Audio Layer III) , 简 称 为 MP3。 它 被 设 计用 来 大 幅 度 地 降 低 音 频 数 据 量 。 利 用 MPEG Audio Layer 3 的 技 术 , 将 音 乐 以1:10 甚 至 1:12 的 压 缩 率 , 压 缩 成 容 量 较 小 的 文 件 , 而 对 于 大 多 数 用 户 来 说 重 放的 音 质 与 最 初 的 不 压 缩 音 频 相 比 没 有 明 显 的 下 降 。 它 是 在 1991 年 由 位 于 德 国 埃尔 朗 根 的 研 究 组 织 Fraunhofer-Gesellschaft 的 一 组 工 程 师 发 明 和 标 准 化 的 。 用MP3 形 式 存 储 的 音 乐 就 叫 作 MP3 音 乐 。 它 能 够 将 CD 品 质 的 数 字 录 音 压 缩 成 极 小的 文 件 , 并 将 其 存 储 在 电 脑 之 中 。 实 际 上 , 可 以 将 MP3 文 件 压 缩 成 比 光 盘 文 件 小12 倍 的 文 件 。 因 此 大 大 节 省 了 我 们 的 硬 盘 空 间 。在各类语言中 Java 因为具有如下特性而被人广泛使用成了常用编写程序的语言。Java 语言是一种纯的面向对象的语言,这使得它与其他语言,如 C 语言的面向过程不同,大大的提高了代码的封装性和代码的阅读性,是一种思想观念的转变。而且在平台方面,Java 语言具有相当好的平台无关性,即:一次开发,到处运行。它使用的一种叫做虚拟机的机制作为中间层来屏蔽平台的差异化。Java 的源程序经过编译产生相应的类文件,类文件必须通过虚拟机的解释才能够运行。每一种操作系统都有属于自己的虚拟机机制。故而有很好的可移植性。除此之外,在内存管理方面,Java 在虚拟机内部实现了垃圾自动回收的功能,能够自动判断内存的使用情况。从而进行合理的释放。JMF 为多媒体的获取、播放、处理和传输定义了统一的体系结构、消息处理机制和程序设计接口,提供给开发者一个可以扩展 的并且跨平台的强大的媒体工具。因而使用 Java 语言开发 MP3 播放器是比较有前瞻性的。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸41.2 技术现状与发展趋势Java 是由 Sun Microsystems 公司(已被甲骨文收购)于 1995 年 5 月推出的Java 程序设计语言和 Java 平台的总称。Java 平台由 Java 虚拟机(Java Virtual Machine)和 Java 应用编程接口(Application Programming Interface、简称 API)构成。Java 应用编程接口为 Java 应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个 Java 平台之后,Java 应用程序就可运行。现在 Java 平台已经嵌入了几乎所有的操作系统。这样 Java 程序可以只编译一次,就可以在各种系统中运行。Java 语言吸收了 Smalltalk 语言和 C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。Java 媒体架构(JMF)是一个通用的 API,它允许 Java 开发者用许多不同的方法处理媒体。该核心框架支持不同媒体(如:音频输出和视频输出)间的时钟同步。它是一个标准的扩展框架,允许用户制作纯音频流和视频流。Sun 以四种不同的专用版本提供 JMF 2.1.1 技术,满足专业开发人员的各类需求,第一个是一个轻便型版本,它完全采用 Java 语言编写,适用于任何 Java 兼容系统。此外,开发人员还可选择分别适用于 Solaris、Windows 或 Linux 等操作系统的性能最优化软件包,以提高性能和能力。几乎所有的媒体类型的操作和处理都可以通过 JMF 来实现。全面的讨论 JMF 所提供的所有特征已经超过了本指南的范围,使用几个简单的媒体应用程序来实现此框架的构建模块。 JMF 软件也是 Java Media 系列软件的一部分。Java Media 系列软件包括 Java 3D、Java 2D、Java Sound 和 Java Advanced Imaging 等 API。采用各种 Java Media API,软件开发商人员就能容易、快速地为他们已有的各种应用程序和客户端 Java 小程序增添丰富的媒体功能,如流式视频、3D 图像和影像处理等。就是说,各种 Java Media API 发挥了 Java 平台的固有优势,将“编写一次,到处运行“的能力扩展到了图像、影像和数字媒体等各种应用领域,从而大大缩减了开发时间和降低了开发成本。1.3 Eclipse 中使用 JMF项目→属性→Java 构建路径→库→添加外部 jar→选择 JMF 安装目录下的 JAR 文件→确定。这样就完成了 JMF 包的导入安装需求要运行此指南中的例程序,你需要如下的工具和组件:· Java 2 平台,标准版,编译和运行演示程序· Java 媒体框架,版本 2.1.1a 或者更高· 一块已经安装并且配置号的适当的声卡· 一台或者多台测试机器· 演示的源代码文件在 mediaplayer.jar 中最后的一个演示应用显示了 JMF 在网络中的应用。如果需要,此演示能运行在一个独立的机器上,使用此机器即是传输方也是接收方。可是要观察到在网络中使用JMF 的所有功能,你仍然需要至少两台联网的机器。下载安装文件将 JMF 安装到你的计算机中的第一步是在 JMF 的主页中下载安装文件,它同样包括了太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸5JMF 源代码和 API 文档的链接。23 页的 Resources 中有下载 JMF 的链接。目前,JMF 有 Windows, Solaris, Linux 等版本,以及可运行在任何装有虚拟机的计算机上一个纯 Java 版本。为了增加性能,你需要下载一个与你操作系统所适应的版本。任何在一个操作系统 JMF 版本下书写和编译的代码都可以方便的移植到另外的操作系统上。例如,如果你下载了一个 Solaris 版本的 JMF 并且编译了一个类,这些类就可以在 Linux 上使用,不会有任何问题。作为选择,你可以选择下载纯 Java 版本,或者跨平台版本的 JMF。这些版本没有使用操作系统特有的库文件。如果没有合适的 JMF 版本适合的操作系统,那么跨平台版本就是一个不错的选择。安装 JMF下载完 JMF 安装程序后,双击安装程序的图标。大部分安装程序都会有个选项,安装本地库到系统目录中;例如,Windows 版本安装程序会有一个选项“Move DLLs to Windows/System directory.” 。最好将此选项选中,因为它能确保这些操作系统的库文件能正确的安装在安装的过程中,你还需要选择项目来更新系统的 CLASSPATH 和 PATH 变量。如果这些选项被关闭,那么在你编译和运行本指南的例程序的时候就需要在 classpath 中引入JMF 的 jar 文件。图 1.1 JMF 引用的库太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸62 技术背景2.1 JMF 结构2.1.1 定义 JMFJMF 实际上是 Java 的一个类包。JMF 技术提供了先进的媒体处理能力,从而扩展了Java 平台的功能。这些功能包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式的转换和编码的支持,如 M-JPEG、H.263、MP3、RTP/RTSP (实时传送协议和实时流转协议)、Macromedias Flash、IBM 的 Hot Media 和 Beatniks 的 Rich Media Format (RMF)等。JMF 2.1.1 还支持广受欢迎的媒体类型,如 Quick time、Microsoft AVI 和 MPEG-1 等。此外,JMF 2.1.1 软件中包括了一个开放的媒体架构,可使开发人员灵活采用各种媒体回放、捕获组件,或采用他们自己的定制的内插组件。使用 JMF 工作的基础。为完成这些,我们会创建三个的独立工作的例程序。每个例子都会建立前一个例子的基础上,显示 JMF 功能性的不同方面。 假定你曾经使用过并且已经熟悉了 Java 程序语言。除了 Java 核心和 JMF 的类之外,我们会使用一些 Java AWT 和 Swing 类(用于创建 GUI),也会有一些 Java 网络类(用于在网络中传输媒体)。对 GUI 和网络类一些熟悉有助于你更快的明白观点和这里的例子,但并非是阅读本指南必须的。JMF 体系结构你曾见过了使用 JMF 播放本地媒体文件是多么的容易,现在我们将后退一步,来看看一幅是如何通过 JMF 创建了如此成熟的基于媒体的应用程序的大的画面,是如何通过 JMF 创建了如此成熟的基于媒体的应用程序。全面的了解 JMF 体系结构是没有意义的,本节将给你一个大体的概念,关于高级的 JMF 组件是如何组合起来创建想得到的东西。JMF 的组件结构非常的灵活,它的组件一般可以分成三个部分:• Input 描述某种被用于在进程休息的时候作为一个输入的媒体。• process 执行某些输入上的活动。一个过程有一个明确的输入和输出。大量的过程可用, 能被用于一个输入或者一批输入。这些过程能被联系起来,一个过程的输出被用于另外一个过程的输入。在这种风格中,大量的过程可能被应用于一个输入。 (这段期间是可选择的——我们开始的两个例子没有包含真正的数据过程,只有一个来自文件的输入和一个通过 Player 的输出。 )• Output 描述了媒体的某些目的地。从这些描述中,你可以想象到 JMF 组件体系结构听起来就好像在一个典型的立体声系统或者 VCR 之后。很容易设想到,使用 JMF 就如同打开电视或者在立体声音箱系统下调节声音的风格。例如,录制喜爱的电视节目的简单的动作能在这些组件的基础中:• Input 是电视广播流,在同一个频道运输音频和视频。• Process 是一个记录设备(就是,一个 VCR 或者许多的数字设备)转换模拟或者数字音频视频广播流成适合复制到磁带或其他媒体上的格式。• Output 是记录已格式化轨迹(音频和视频)到某些类型的媒体上。JMF 资料处理模式以下图片说明了 JMF 数据处理模块并对每个类型给出了例子:太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸7使用此模式,很容易明白我们前面的两个例子,从文件中输入音频和视频并输出到本地计算机上。在后面的章节中,我们也会谈论一些通过传播和接收音频媒体的 JMF网络功能。使用可视化组件上面的界面方法都返回一个 java.awt.Component 类的实例。没个实例都视可加载到我们窗体上的可视组件。这些组件都与 Player 有直接的联系,所以在这些组件上的所有可视元素的处理都会产生 Player 播放媒体后相应的变化。在我们将这些组件加入到我们的窗体的之前,必须要保证它们不为空。因为并不是所有的媒体播放器包括每一种可视组件,我们只需添加相关播放器类型的组件。比如,一般来说一个音频播放器没有可视组件,所以 getVisualComponent()就要返回空。你不会想在音 频播放器窗体上添加可 视组件的。2.1.2 JMF 高层结构图 2.1 传统的多媒体数据处理设备与 JMF 的比较JMF 高层结构正如图 2 所示,数据源(Data Source)就像一盒磁带一样封装了媒体数据流,而播放器(Player)提供了像 VCR 一样的机制处理和控制数据。2.1.3 时间模型图 2.2 JMF 时间模型JMF 的时间精准到纳秒级,虽然在 Java 中其他的类也支持纳秒级的时间,但是在JMF 中,一个时间点一般用 Time 对象来表示。支持 JMF 时间模型的类必须实现 Clock 才能追踪媒体数据流。Clock 接口定义了太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸8基本的时间定位盒同步操作,而这些操作在表现媒体数据时是必须的。Clock 中的数据 media time 表示在媒体流中的当前的位置。流的开头是媒体时间0,流的最后是媒体时间的最大时间。媒体流的持续时间(Duration)是媒体数据流的从开始到结束的经历的时间。2.1.4 管理器通过使用管理器(Manager)这个对象,JMF 使得用户实现的新的关键接口与已存在的类无缝对接。管理器模型使用了工厂模式 [10]。使用 JMF 来完成程序时,我们需要使用 Manager 的 create 方法来构造Player,Processors,DataSink,DataSource 来为你的应用程序服务。例如如果你式通过一个输入设备捕获媒体数据,你将会使用 CapturtDeviceManager 来找出哪些设备是可用的,并且通过这些对象来获取相关信息。2.1.5 事件模型图 2.3 JMF 事件模型JMF 使用一个结构化的事件报告机制来使得应用程序来与当前的媒体的状态来保持通信。同时它还使得基于 JMF 的程序能够响应媒体驱动的错误状况,比如说资源部可获得这种情况。当 JMF 对象需要报告当前的情况时,它会抛出MediaEvent。MediaEvent 由许多特定类型的事件。对于每一个可以抛出 MediaEvent的对象,JMF 定义了相应的监听者对象。2.1.6 数据模型图 2.4 JMF 数据模型JMF 媒体播放器经常使用 DataSource 来管理媒体内容的转移。DataSource 封装了
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于java的MP3播放器设计与实现.rar
    链接地址:http://www.gold-doc.com/p-116462.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开