ImageVerifierCode 换一换
格式:DOCX , 页数:52 ,大小:1.40MB ,
资源ID:12659715      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12659715.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Mac平台下MP3播放器的实现毕业设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Mac平台下MP3播放器的实现毕业设计.docx

1、Mac平台下MP3播放器的实现毕业设计摘 要伴随着苹果公司的再次崛起,在Mac平台下做应用开发再次火爆起来,本系统正是在这个背景下开发的。本系统就是在Mac平台下开发的音乐播放系统,能够实现MP3 ( MPEG Audio Layer 3 ) 播放器的日常需求。系统的开发是基于Mac OS X的Cocoa框架技术,使用的开发语言是Objective-C。Cocoa就是苹果提供的一套API,通过调用其中的接口,重写其中的方法来实现需要的功能。本系统遵循苹果的界面标准。界面要求简洁,界面的菜单提示必须都是苹果风格的,色彩不要过于丰富。力求让使用者得到舒心的体验。本系统主要有五个模块,其中播放控制和

2、列表管理是两大核心模块。播放控制主要实现:音乐的播放、音乐暂停、播放模式控制、上一首、下一首控制、歌曲音量调节。歌曲列表管理模块主要实现:显示选中的歌曲、显示正在播放的歌曲、歌曲列表的排序、歌曲队列的添加、删除、用鼠标拖放歌曲到列表、移除播放列表。本系统的开发,设计是基础,功能是重点。主要向大家介绍了Mac平台及其相关开发工具和使用到的技术。系统的功能介绍也很详细。关键字:苹果平台, MP3播放器,CocoaAbstractAlong with Apple rise again, in the Mac application development platform to do it agai

3、n hot, the system is developed in this context. The system is developed under the Mac platform, music player system that can achieve the daily needs of MP3 players. System development is based on Mac OS Xs Cocoa framework technology, the use of the development language is Objective-C. Cocoa is Apple

4、 provides a set of API, we pass one of the interfaces; override one of the ways to achieve that we need to functionality.The system is based on Apples interface standard. Interface must be simple, the interface menu is prompts to Apples style; color should not be too rich. It allows users to get com

5、fortable experience.The system has five modules, which control and play list management are the two core modules. Play control is mainly achieved: the music player, music pause, play mode control, on the one, next control, and music volume adjustment. Song list management module to achieve: Display

6、the selected songs to show the currently playing song, song list is sorted, the song queues, add, delete, drag and drop songs to the list with the mouse, remove the playlist.For this system development, design is the basis, function is the key. Mainly to introduce the Mac platform and its associated

7、 development tools and technologies used. Function of the system description is also very detailed. Key words: Apple platform, MP3 Player, Cocoa第1章 绪论1.1 MP3技术现状研究随着计算机和多媒体技术的不断发展以及个人计算机的普及,各种各样的媒体文件、媒体播放器层出不穷,而MP3格式以其体积小、音质好的特点成为使用最为广泛的音频格式,得到了绝大多数软件和硬件媒体播放器的支持。1986年,德国人卡尔因茨布兰登堡率先提出了一个数字音乐压缩技术的构想。布

8、兰登堡认为:“可以通过一种编码重组技术将音频文件大幅度压缩,然后在播放的时候使用专门的解码技术进行还原,达到减小体积保持音质的目的。”一年之后,布兰登堡成功地将一首骑兵进行曲的CD音乐压缩到原来的五分之一,但由于电脑速度过慢,无法正常解码。1990年,一家成功开发了MPEG-1的音频研究机构,为他提供了一个研究小组。在这年年底,改良后能够真正运行的MP3技术终于被开发出来了。在实际测试中,音频文件的压缩和解码都非常顺利,能够把CD音质的音乐文件压缩到原来大小的1/12,实现数字音乐实时压缩。布兰登堡敏锐意识到这是一个巨大市场,于圣诞节向德国政府申请专利。1993年,MP3技术又得到国际标准组织

9、(ISO)认可,从而成为主流音频格式。MP3应该算目前使用用户最多的有损压缩数字音频格式了。它的全称是MPEG(MPEG:Moving Picture Experts Group) Audio Layer-3。早期的MP3编码采用的是固定编码率的方式(CBR ),我们常看到的128KBPS,就是代表它是以128KBPS固定数据速率编码可以提高这个编码率,最高可以到320KBPS,音质会更好,自然,文件的体积会相应增大。因为MP3的编码方式是开放的,你可以在这个标准框架的基础上自己选择不同的声学原理进行压缩处理,所以,很快由Xing公司推出可变编码率的压缩方式(VBR)。它的原理就是利用将一首歌

10、的复杂部分用高 bitrate 编码,简单部分用低 bitrate 编码,通过这种方式,进一步取得质量和体积的统一。MP3压缩编码使用了5种重要的技术:最小听觉门限判定(Minimal Audition Threshold)、掩蔽效应(Masking Effect)、位储存槽(Reservoir of Bytes)、联合立体声(JointStereo)和霍夫曼编码(Huffman Code)。最小听觉门限判定是一种减少信息量的手段,可以将大部分记录信息集中在人耳最敏感的25kHz范围,其余频率则分配较少的容量记录。 掩蔽效应是一种心理声学模型,在听觉上表现为有一个音量或音色特别突出的声音出现时

11、,其它细小的声音会变得难以被察觉,因而没有必要对所有的声音细节都进行编码,而只需对容易引起注意的声音编码。 位储存槽是MP3的流量属性,分为恒定比特率(CBR)和可变比特率(VBR)。CBR指文件每秒的信息流量固定不变,常见的MP3音频都是以CBR方式编码的,其优点是压缩速度快;缺点是由于每秒的信息流量相同,容易造成空间的浪费。VBR指文件每秒的信息流量可以变化,其优点是在信号复杂时用较多的容量记录,信号简单时用较少的容量记录以有效利用空间。通过位储存槽,将CBR编码的MP3音频,在波形简单时用较少的容量记录,把多余的空间用于记录复杂的波形,维持流量的大小,以达到近似于VBR编码的效果。而用V

12、BR编码的MP3音频则不需要位储存槽。 联合立体声是一种立体声编码技术,主要分为强度立体声(Intensity Stereo, IS)和中侧立体声(Mid/Side Stereo, M/S)两种。IS在流量比较低时使用,利用人类听觉系统对高频信号相位分辨能力不强的特点,将音频信号中的低频分离出来合成单声道信息,其余的高频信息合成另一个单声道信息,并通过另外记录高频信号的位置信息来重建立体声效果。M/S常被用于左右声道大体相似的情况,先将左右声道相加(L+R)得到一个声道,再将左右声道相减(L-R)得到另一个声道,然后将这两个声道信息通过心理声学模型和滤波器处理。M/S与IS一样,是以损失部分相

13、位信息为代价而获得较高音色记录信息的方法。一般地,在MP3音频编码中M/S和IS是交替使用的,视信息内容和流量而定。如果是更高流量如160kb/s以上的MP3 音频,则可以对立体声的两个声道独立编码,以保存相位信息。霍夫曼编码是一种常见的无失真压缩方案。在脉冲编码调制信号(PCM)被分成多个临界频带并经过以上处理后,经过混合多相修饰离散余弦变换(MDCT),将波形转换为一连串的系数,最终经过霍夫曼编码再次实现压缩。1.2苹果平台进展1.2.1 苹果平台历史介绍Mac OS是一套运行于苹果Macintosh系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面。Mac OS可以被分

14、成操作系统的两个系列:一个是老旧且已不被支持的“Classic”Mac OS(系统搭载在1984年销售的首部Mac与其后代上,终极版本是Mac OS 9)。采用 Mach 作为内核,在Mac OS 8以前用“System x.xx”来称呼。新的Mac OS X结合BSD Unix、OpenStep和Mac OS 9的元素。它的最底层建基于Unix基础,其代码被称为 Darwin,实行的是部分开放源代码。 从1984年System 1.0 开始,到1987年的system 2.0,是苹果早期的系统。System 1.0是苹果随同Macintosh 128K的最初电脑操作系统,发布于1984年1月

15、,是第一个麦金塔操作系统。当时的System 1.0含有桌面、窗口 、图标、光标、菜单和卷动栏等项目。全体系统文件夹仅216K。System 2.0是在1985年的4月发布的,2.0只是1.0的一个更新而已,没什么太大的变化。后来苹果又分别在在1988年、1991年推出了System 6 、system7系统。1997年7月26日发布的Mac OS 8.0 带来 multi-thread Finder,三维的 Platinum 界面,以及新的电脑帮助系统。此时苹果才开始慢慢的开启了它的另外一个时代。1999 年10月23 日苹果发布了Mac OS 9 是Mac OS 8.6的改进版本。Mac

16、OS X 一代全新的产品,具有划时代的意义。诞生于2001年3月24日。Mac OS X 使用基于 BSD Unix 的内核,并带来Unix风格的内存管理和抢占式多任务处理 (pre-emptive multitasking)。大大改进内存管理,允许同时运行更多软件,而且实质上消除了一个程序崩溃导致其它程序崩溃的可能性。这也是首个包括“命令行”模式的 Mac OS,除非执行单独的终端工具程序,否则你可能永远也见不到。到今天,距离苹果2001年3月24日发布了第一代Mac OS X 10.0 Cheetah(猎豹)系统,到现在已经整整过去了十年的时间,从当初不完善的系统功能,到不断求新突破的今天

17、,Mac OS X的版本变迁见证了苹果发展的十年历程。Mac OS X也在这十年之间陆续推出了8个版本。现在最新一代的Mac OS X 10.7 Lion 雄狮的系统也正在测试阶段,预计今夏将推出正式版本。这些平台的变迁都是针对苹果的iMac的。苹果这30年起起落落,曾经辉煌过,但是由于种种原因,它有段时间没落了,但是苹果一直在不断调整,一直在专心做自己的产品。当现在它又回到我们大家的视线中来的时候,它改变了世界IT行业的格局,苹果的三大产品分别深刻的改变了三类内容市场iPod之于音乐市场、iPhone之于应用市场、iPad之于电子书市场。它开始为用户创造着需求,让我们明白原来可以用这个产品干

18、这样的事情,原来产品可以这样用。它的耀眼光芒使它再次站在世界之巅。苹果的产品总能够让我们拥有最好的用户体验。1998年,苹果以iMac实现了公司复兴,2001年iPod诞生,改变了MP3播放器的时代。iMac 和iPod现在早已成为苹果公司的传奇产品。这两个产品真正实现了苹果巨人的复活,使得苹果时代又一次到来了。现在iPad会成为苹果公司的下一个传奇吗?就目前的状况看iPad正在通往传奇的路上越走越远。1.2.2 苹果系统与WINDOWS系统的区别Mac OS X与Windows在架构与开发环境上最大的不同点在于:Mac OS X基于UNIX;Mac OS X主要开发工具X-code使用GCC

19、作为编译程序,与其他种类的UNIX相同;不过Mac OS X也有独树一格的“bundle”软件包装格式这样的东西,成为它与其他操作系统不同之处。Windows和Mac OS X都属于现代的操作系统,所以Windows在操作系统层级所提供的功能执行文件与链接库加载、多任务与多线程、内存管理等在Mac OS X上都找得到对等的API和作法。不过,相较于Windows在微软独力开发下,架构和API都维持着相对的一贯性(另一方面,也背负着各种历史遗迹和向下相容的包袱),Mac OS X则是底层源自NeXTSTEP的Mach微核心(现在称为XNU),而应用层(用准确的UNIX术语来说叫userland)

20、来自FreeBSD 4。Mac OS X透过这样的架构,才拥有和一般Linux/FreeBSD相似的UNIX应用环境。有相当多Mac软件开发者喜欢在UNIX shell下工作,使用各种UNIX工具。而在Windows上,必须加装Cygwin之类的环境才能办到。Mac OS X受益自UNIX环境之处不少。尤其,Apple使用了大量的open source工具。举例来说,Apple不像微软,没有自己的C语言编译工具,Apple用的是UNIX业界的标准 open source的GCC(其中当然有不少OS X的扩展功能就是)。虽然Apple有自己的开发环境Xcode,但是底层采用GCC这件事对开发者来

21、说是相当重要的。同时,Apple的C/C+链接库用的也是GCC标准的std c/std c+。但是Mac OS X并不完全是UNIX。它的GUI环境(Aqua)就完全不是一般Linux/FreeBSD所使用的X11。而在UNIX层之下的微核心也和其他UNIX不同。接下来这一点很重要:Mac OS X虽然有和Windows .EXE和.DLL相对应的文件(Mac OS X跟其他UNIX一样,可执行文件一般不加扩展名,UNIX系的动态加载链接库则冠以.dylib),但更重要的架构差异是bundle。Bundle概念承袭自NeXTSTEP。简单来说,就是由操作系统提供一种类似对象封装的文件包裹。Ma

22、c OS X上最常见的bundle要属.app结尾的应用程序了。虽然.app外观上是个文件,在UNIX shell下看就能发现它其实是个目录,内含各种metadata(通常至少会有一个名为Info.plist的数据文件)、可执行文件、动态链接模块、各种资源等。除了.app外,OS X的各种框架档(以.framework结尾,是一种同时包含头文件及链接库的包装)、应用程序的外挂模块(通常以.bundle结尾)等等,都是以bundle形式呈现的。如表1就是Mac OS X和windows的一些主要差别。表1 Mac OS X和Windows比较项目WindowsMac操作系统最新版本Windows

23、 7Mac OS X 10.6操作系统核心NT Kernel XNUCLI shell环境CMD.EXEUNIX shellGUI(shell环境)Windows ExplorerAqua(Finder)用来辨认软件组织的方式GUIDBundle identify厂商提供的开发环境Visual StudoX-code可视化的GUI制作工具Visual Sudio内建的WinForm designerInterface BuilderC编译工具Microsoft C CompilerGCC操作系统服务WIN 32 API从POSIX layer用std c/c+取用续表1项目WindowsMac

24、系统核心服务WIN 32 APICoreFoundation/CoreServices面向对象的API.NET Framework/MFCCocoa桌面应用程序的数据库方案ODBC/ADO.netAppKit和Cocoa Graphics基本绘图系统使用的单位Pixel(GDI)Point(Quartz)主要开发语言C/C+/C#Objective C/C+,C/C+系统内部编码Unicode (UTF-16)Unicode(文件系统使用UTF-8,系统API使用CFString/NSString,内部使用UTF-16)应用程序的设定管理方式Windows registryProperty l

25、ist files脚本语言支持VBScript/JScript/CScript/DOS Batch scriptAppleScript/perl/Ruby/shell script/Python数据结构与容器 System.collectionsNSArray/NSDictonary/etc1.3开发此项目的背景和意义近几年苹果公司再度崛起,强势回归。随着苹果风暴再次席卷全球,苹果旗下产品的火爆和热卖。于是在苹果平台之下的应用一下子变的多了起来。尤其在欧洲和北美,苹果的市场需求量之大让人感到不可思议。苹果公司的网上应用商店App Store的软件产品更加是琳琅满目,上面有很多都是苹果发烧友开发

26、的应用,为大家提供方便和更多的选择。本选题正是基于当今最火爆的平台,通过在苹果的Mac平台下一个mp3播放器的实现,熟悉在Mac平台下多媒体软件的开发。满足在苹果操作系统上日常的音乐播放需求。Mac OS X 目前最新的版本是10.6,它作为一款先进的操作系统是基于稳定的Unix内核而构建起来的。苹果的核心技术core technology包括了 Core Image、Core Video、Core Audio 和 Core Animation 都为不同类型的媒体提供先进的操作支持。苹果用Open GL技术来渲染3D图像, OpenGL被Mac OS X 同时用作独立的图形加速的和系统图形加速

27、实现,所以苹果公司产品的界面看起来总是如此的绚丽迷人。苹果公司的应用程序框架层(Application Frameworks)内嵌了用于构建应用程序的各种技术,它的核心是用于开发程序的基础环境:Cocoa、Carbon 和 Java 等。各种环境的设计是为了让熟悉某一种环境的开发人员能够有施展的平台。比如:Cocoa 和 Java 分别使用 Objective-C 和 Java 语言提供面向对象的开发环境,而Carbon 提供基于 C/C+语言的开发环境。这一层同样提供其他大量的辅助框架技术,比如 Core Data(用于帮助开发人员快速管理数据模型与关系)、Address Book(与系统的

28、地址簿程序进行沟通)等等。可以通过 X-code 来组织和编辑源代码、编译并调试程序、查看文档或构建不同类型的软件。除了 X-code,Mac OS X 也提供您一整套开源的解决方案,比如 GNU Compiler Collection(GCC)。命令行构建 工具也一应俱全,包括 makefile、gdb debugger、分析工具、性能调试工具、源代码管理工具和其他许多编程工具。1.4 本文研究的内容和结构本文研究的主要内容就是Mac平台下一个MP3播放器的实现。在苹果的iMac上运行软件,实现一般mp3和wma格式的音乐文件的播放。系统包括本地音乐管理、播放控制、歌曲列表管理、歌曲信息管理

29、和底层支持五大模块。本地音乐管理包括:浏览本地文件夹,添加本地音乐到播放列表;播放控制包括:音乐的播放、音乐的暂停,播放模式控制,上一首、下一首控制,歌曲音量调节;歌曲列表管理管理包括:显示选中的歌曲,显示正在播放的歌曲,歌曲列表的排序,歌曲队列的添加;歌曲信息管理只用来管理歌曲的详细信息,例如:艺术家、歌曲时长、专辑信息、码率、音轨等。底层支持模块就是实现mp3文件的编解码。论文结构如下:第1章,绪论,介绍开发此项目的背景、目的、意义。第2章,讨论本系统实现的关键技术。首先总体介绍苹果的开发平台Objective - C和Cocoa框架,然后详细说明了系统实现的技术关键,最后说明了设计本系统

30、需要的硬件和软件支持。第3章,系统需求分析以及开发遇到的技术难点问题。第4章,详细介绍每个功能模块的实现。第2章 关键技术2.1 Objective C 特点Objective-C,是C的衍生体,继承了所有 C 语言的特性,但是它们不是继承于 C 的语言特性本身。Objective-C的运行环境库(Runtime Library)完全是由C编写的,因此任何一个Objective-C消息派发(Message Dispatching),都会被替换成Objective-C运行环境中的某个或某几个C函数的调用。这种机制为Objective-C带来了高效的消息派发和对C代码完全原生的兼容。Objecti

31、ve-C实际上是C的超集,Objective-C就是拥有一个面向对象层(Object Oriented Layer)的C。而Objective-C正是通过从Smalltalk进化而来的这种语法,实现了对这个面向对象层的支持。Objective-C和C+不同,它不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类名称加上前缀,以免引致冲突。在Cocoa编程环境中,所有Mac OS X系统类和函数均有“NS”作为前缀,例如NSObject或NSButton来清楚分别它们属于Mac OS X核心,使用“NS”是由于这些类别的名称在NEXTSTEP开发时定下的

32、。和C+不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C+不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories(分类)和protocols(协议)不但可以提供很多多重继承的好处,而且避免了很多麻烦。和C+另外一个很明显的不同就是Objective-C在没有设定存取权限(protected, public, private)时,预设的存取权限为 protected。并且在自己的类之间尽量使用低耦合的联合依赖关系,而少用高聚合的继承关系,增强模块之间的独立性。Objective-C和C+的对象模型和层次结构是截然不同相互独立的。Objective-C是一门动态性很强的语言。编译器保留了绝大部分信息,使得在运行阶段能使用这些信息进行动态绑定。下面是一个Objective-C程序的典型结构

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1