- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于javamp3播放器设计与实现
基于java的mp3播放器的设计与实现
摘 要:随着计算机和多媒体技术的不断发展以及个人计算机的普及,各种各样的媒体文件、媒体播放器层出不穷,而MP3(MPEG Audio Layer3)格式以其体积小、音质也有保证的特点成为使用最为广泛的音频格式,得到了绝大多数软件和硬件媒体播放器的支持。如今软件市场上的媒体播放器MediaPlayer,酷我音乐盒和千千静听等。高音质播放和消耗是各种媒体播放器所追求的目标。
随着,
首先,从面向对象的特性来看,Java是一种完全的面向对象设计语言。Java的多态主要是建立在后期绑定(Late Bingding)或叫动态绑定(Dynamic Binding)基础之上的,这样Java先天就具备了对对象类型的自动判断能力。而C++是不支持动态绑定的,绑定动作发生在编译期而不是执行期,所以C++要实现多台的效果必须要使用虚函数。此外虽然C++语言支持封装和继承,但多态仍然是建立在编译时绑定的基础上,必须要通过虚函数实现。不仅如此,C++语言的指针操作允许使用goto语句,容易产生歧义的多重继承等特性也使C++不能严格符合面向对象的思想。
其次,Java具有绝对的平台无关性,其使用一种虚拟机作为中间层来屏蔽平台差异。Java的源程序经过编译产生类文件,类文件结构不同于传统的编译器生成的二进制文件,必须经过虚拟机的解释才能运行,因此Java被认为是一种解释性语言。虚拟机作为中间层负责把编译好的类文件转换为不同平台的指令。而对于不同的C,C++编译器,各种数据类型所占用空间有可能不一样,这种差异会影响程序的可移植性。
此外,在内存管理方面,Java在其虚拟机内部实现了垃圾内存自动回收功能,能够自动判断那些内存不再被用户使用,这样就让用户在系统设计时从繁杂的内存管理工作中解脱出来。C和C++语言分配的内存空间必须由用户在不使用的时候进行回收,容易产生内存回收不充分的问题,形成内存漏洞。
然而,Java也有瑕疵,由于是一种解释型语言,编译后的Java类文件不能直接被操作系统执行,需要虚拟机的解释,因此其效率和C,C++相比有一定差距。在运行时,Java编写的软件需要操作系统中安装有虚拟机,所以程序的发布相对繁琐。总的说来,
Java编程语言是
·简单与面向对象的
·分布式、安全与鲁棒的
·解释执行与高性能的
·多线程与动态执行的
二、相关技术简介
2.1 关于JMF技术
JMF(Java Media Framework),Java媒体架构,是对应Java 2平台标准版(J2SE)的一种可选用的应用编程接口API)软件包,它为音频和视频等媒体内容的捕获、回放、传输和编码转换等提供了一个统一的架构。
JMF技术提供了先进的媒体处理能力,从而扩展了Java平台的功能。这些功能包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式和编码的支持,如M-JPEG、H.263、MP3、RTP/RTSP 实时传送协议和实时流转协议、Macromedias Flash、IBM的HotMedia和Beatniks的Rich Media Format (RMF)等。JMF 2.1.1还支持广受欢迎的媒体类型,如Quicktime、Microsofts 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及更高版本一起提供 是轻量级的
本身支持相对较少的音频格式(AIFF、WAV和AU)
通过Java Sound的服务供应商接口(SPI)可以进行扩展
JMF:
添加对音频、视频和其它基于时间的数据的支持
提供多种媒体格式的同步和控制功能
当前没有与任何JDK一起提供
本身支持许多音频格式(AIFF、WAV等)以及 MPEG和其它格式
包含可扩展的编码器/解码器媒体支持
2.2 JMF常用类
JMF的常用类包括以下几个:
数据源(DataSource)
媒体定位器(MediaLocator)
播放器(Player)
处理器(Processor)
数据池(DataSink)
数据格式(Format)
管理器(Manager)DataSource)
在JMF中,DataSource对象就是数据源,它可以是从采集设备获得的数据,也可以是一个多媒体文件,也可以是从互联网上下载的数
文档评论(0)