IOS毕业设计毕业论文.doc
基于iOS的在线音乐播放系统的开发摘 要 音乐播放器是一种用于播放各种音乐文件的多媒体播放软件。它涵盖了各种音乐格式的播放工具,比如:MP3播放器,WMA播放器,MP4播放器等。它们不仅界面美观,而且操作简单,带你进入一个完美的音乐空间。手机音乐播放器是一种在手机上用于播放各种音乐文件的多媒体播放软件。它们在手机中运行,不仅界面美观,而且操作简单,带你进入一个完美的音乐空间。 例如QQ音乐播放器通过贴心的设计、卓越的体验、海量的曲库、最新的流行音乐、专业的分类、丰富的空间背景音乐、音乐分享等社区服务,让QQ音乐成为中国网民在线音乐生活的首选品牌,引领着人们的音乐生活方式!音乐将是人们所关注的重点,也是提高水平的必要途径之一。 本文主要介绍了iOS平台以及基于该平台的音乐播放娱乐系统的发展现状,并且详细地介绍了。本系统是一款基于iPhone平台的音乐播放系统和手机游戏,本地播放,本地游戏为一体,支持mp3等主流音频。资源占用率小,运行效率高,操作简洁,扩展能力强。本系统播放画面流畅,具有声效和图效上的听觉及视觉的享受。 使用本音乐播放您可能会感觉到身心愉悦, 在听音乐的同时能够玩游戏, 其中采用SQLite数据库,常用iPhone控件等技术,模块与模块间低耦合,高内聚,采用模块化方法编程,维护性较高。关键词:iPhone;SQLite;游戏;ios;控件The development of Online Music Broadcast System Based on iOSAbstract The music player is a multimedia player software to play music files. It covers the tools of a variety of music formats, such as: MP3 player, WMA player, MP4 player, etc. Not only are they beautiful interface and easy to operate, to bring you into a perfect space for music. Cell phone music player is a multimedia player software to play music files on the phone. They run in the phone, not only beautiful interface and easy to operate, take you into a perfect space for music. QQ music player through the thoughtful design, exceptional experience, the massive music library, the latest popular music, professional classification, space background music, music sharing, community service, QQ music online music life of the Chinese netizens the brand of choice for leading the people's music lifestyle! The music will be the focus of the essential means of raising the level of one. This paper describes the iOS platform, as well as the development of the entertainment system based on the platform of music playback status quo, and described in detail. This system is a music player and mobile games based on the iPhone platform, local playback, local game as a whole, support for mp3 and other mainstream audio. Small rate of resource consumption, high operating efficiency, simple operation, and expansion capability. The playback screen and smooth, with the effect on the sound and Figure hearing and visual enjoyment. To use the music player, you may feel relaxed and able to play games while listening to music, people in infinite joy, which uses low-coupling in the SQLite database, common iPhonecontrols, modules, and modules, high together, using a modular approach to programming, to maintain the high。Keywords: iPhone;SQLite;Music;Game;ios;Control;目 录 基于iOS的在线音乐播放系统的开发1The development of Online Music Broadcast System Based on iOS2第1章 绪论61.1 课题开发背景71.2 音乐播放娱乐系统框架设计开发的现实意义81.3 本系统预达到的目标8第2章 在线音乐播放系统开发技术简介92.1 Objective-c简介92.1.1 ios系统框架102.1.2核心操作系统层和核心服务层102.1.3应用程序框架122.2 SQLite数据库介绍132.3 XCode13第3章 在线音乐播放系统需求分析163.1 在线音乐播放系统的可行性分析163.2 在线音乐系统功能需求分析183.2.1 功能需求19根据系统功能划分,本系统详细需求描述如下:19第4章 在线音乐播放系统设计214.1 在线音乐播放系统总体架构设计214.2 模块功能设计214.2.1 音乐播放功能模块224.2.2 音乐信息功能模块234.2.3 在线搜索音乐功能模块244.2.4 在线下载功能模块264.2.5 水果连连看功能模块274.2.6 音乐视频功能模块284.2.7 音乐播放设置功能模块30第5章 在线音乐播放系统实现325.1 系统初始化的实现325.2 音乐播放的实现365.3 音乐播放列表的实现385.4 在线搜索音乐的实现425.5 在线下载的实现455.6 水果连连看功能的实现495.7 音乐视频播放功能的实现525.8 系统播放设置功能的实现54第6章 系统测试566.1 功能模块测试566.2 功能整体测试57第1章 绪论 随着计算机网络通信技术和Internet的飞速发展,基于因特网的手机移动应用已经开始成为一种全新的功能需求,并且越来越受到人们的关注。由于移动应用具有简单性,随时随地性等诸多特点,因此它有着传统计算机所无法比拟的优点。这样一来,手机移动应用的开发工作就显得尤为重要,开发出一个手机音乐播放器就更有必要了。 本文依据设计实现出的以SQLite数据库为例的手机音乐播放器,做了全面系统的介绍。全文共六章,按照前期的开发顺序,从系统分析与研究开始,逐一对开发过程做了全面的介绍。 第一章,介绍了课题的开发背景、课题开发的现实意义、音乐播放器的概念涵义以及预期达到的目标。 第二章,概略地介绍了开发音乐播放器多用到的各种技术,比如新技术Objective-c,SQLite数据库,开源框架的xml解析等。 第三章,对音乐播放器的系统结构设计、系统结构功能、运行环境等概要分析设计阶段做工了大体介绍即需求分析。 第四章,对系统总体流程设计、系统整体框架、后台逻辑处理功能设计和数据库设计作了简要说明。 第五章,具体介绍了系统各功能实现过程,如音乐播放界面的处理, 音乐信息的处理, 在线音乐搜索的处理,连连看游戏的处理等。 第六章,大体介绍了对本系统的测试工作,涵盖了测试计划、测试结果以及测试分析这三个方面的内容。1.1 课题开发背景 如今的移动应用开发产业让人眼花缭乱,主要的移动操作平台有:iOS(iPhoneOS)、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、Flash/Flash Lite、mobile web(WAP/XHTML/CSS/Javascript)。Android以其开放性,多任务,大功能,画面流畅,硬件设备优良多样等各种优点,占智能机一大部分;然而它也存在着很明显的不足,如:兼容性差,各种机型的配置不一样,以至于开发的时候出现各种版本。有些产品华而不实,用户体验差。Symbian主要基于C语言的应用开发,支持多线程运行模式,但是开发代码量过大给开发人员造成很大的不便,另外塞班版本之间兼容性差也是SymbianOS需要改进的一个地方。就目前而言,三大平台(Android、Symbian、BlackBerry)的市场占有率也在逐渐下降,iOS呈现平稳上升趋势。 1.App Store的支付模式成熟。不仅仅是商业模式的创新,更重要的是无法模仿,经过长时间的运营,App Store已经形成完备的支付模式,被大部分用户接受。 2.iOS是用Objective-C开发。从全球的编程语言排行榜来看,虽然,Objective-C只有苹果公司一家使用,但是已经排名第4,可见iOS开发的普及性和受欢迎程度,另外,基于C语言,运行效率更高。 3.苹果iPhone以及所有苹果的硬件软件策略和控制让苹果在用户体验和控制产品质量方面占尽先机,大部分iOS用户能够同时对他们手中的设备进行更新,这会吸引更多用户。 4.iPhone在中国极受欢迎。中国的各大移动运营商都积极地与苹果公司合作,各自推出适合中国人使用的手机套餐和应用,比如中国联通,中国电信等等,社会各界也对iPhone有很好的评价。 5.iOS在各国开发者中有很好的学习氛围,如facebook的three 20 iOS开源代码库,都是良好的学习资源。1.2 音乐播放娱乐系统框架设计开发的现实意义 收听音乐越来越成为人们繁忙之余的轻松娱乐活动。市场上大多数手机播放系统,存在功能单一,下载时间长,画面不流畅,用户体验不好,浪费很多资源和时间,另外,由于音乐播放系统发展短,很多系统都没有规范化管理资源,资源分类混乱等。本系统紧跟当前移动手机开发趋势,基于iPhone平台的音乐播放系统。具有资源占用率小,运行效率高,操作简洁,扩展能力强等特点。1.3 本系统预达到的目标 本系统紧跟当前移动手机开发趋势,使用Objective-c语言开发一个基于iOS平台的音乐播放娱乐系统,实现基于iOS平台的音乐播放娱乐系统的基本功能。歌的切换以及列表显示,在听歌的同时能够娱乐。第2章 在线音乐播放系统开发技术简介 该部分主要包括对iOS系统架构的分析,核心操作系统的分析,应用程序框架的分析,内核的分析,开发环境的配置信息,选用数据库描述信息等,具体如下。2.1 Objective-c简介 Objective-C是非常“实际”的于洋。它使用一个用C写成、很吊的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其源代码大很多。而其函数库(通常附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。 Objective-C的最初版本冰不支持垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“死亡时间”,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些第三方版本已经加入这个功能(尤其是GNUstep),再起Mac OS X 10.3中仍未引入这个功能。不过令人欣慰的是在Apple发布的XCode4中已经支持自动释放,我不敢冒昧的说那是垃圾回收,因为两者机制不同,在xCode4中的自动释放,也就是ARC(Automatic Reference Counting)机制,是不需要用户手动去Release一个对象,而是在编译期间,编译器会自动帮你添加那些以前你经常写的NSObject release。 另一个问题是ObjC不包括命名空间机制(namespace mechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在Cocoa编程环境中,所有Mac OS X类别和函式均有“NS”作为前缀,例如NSObject或NSButton来清楚分别它们属于Mac OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发时定下。 虽然Objective-C是C的母集,但它也不视C的基本型别为第一级的对象。 和C+不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C+不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。 由于Obj-C使用动态运行时类型,而且所有的方法都是函数调用(有时甚至连系统调用(syscalls)也如此),很多常见的编译时性能优化方法都不能应用于Obj-C(例如:内联函数、常数传播、交互式优化、纯量取代与聚集等)。这使得Obj-C性能劣于类似的对象抽象语言(如C+)。不过Obj-C拥护者认为既然Obj-C运行时消耗较大,Obj-C本来就不应应用于C+或Java常见的底层抽象2.1.1 ios系统框架 iOS的系统架构和其操作系统一样,采用了分层的架构。iOS分为四层,分别为核心操作系统(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),Cocoa触摸架构层(the Cocoa Touch layer)。 2.1.2核心操作系统层和核心服务层 位于iOS系统架构最下面的一层是核心操作层,它包括内存管理,文件管理,电源管理以及一些其他的操作系统业务,它可以直接和硬件设备交互。核心操作系统层包括以下这些组件:OS X Kernel,Mach 3.0,BSD,Sockets,Power Mgmt,File System Keychain,Certificates,Security,Bonjour等。 开发人员也可以完全访问核心服务层来方问iOS的一些服务,包括数据库连接,URL学习等等,它主要包括以下这些组件:Collections,Address Book,Networking,File Access,SQLite,Core Location,Net Services,Threading,Preferences,URL Utilities等。 SQLite是嵌入式的和轻量级的sql数据库,广泛用于iOS应用。iOS系统内置SQLite数据库减小了开发人员的负担,是系统的一部分。 Net Servicer主要负责网络服务,在开发过程中,承担应用程序与服务器之间连接的角色,有很强的交互性。 媒体层,通过它可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。它包括以下这些组件:Core Audio,OpenGL,Audo Mixing,Audio Recording,Video Playback,JPG,PBG,TIFF,PDF,Quartz,Core Animation,OpenGL ES。最上面一层是可触摸层,这一层为应用开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。它包括以下这些组件:Multi-Touch Events,Core Motion,Camera,View Hierarchy,Localization,Alerts,Web Views,Image Picker,Multi-Touch Controls。 在Cocoa Touch层中的很多技术都是基于Objective-C语言的。Objective-C语言为iOS提供了相机集合,文件管理,网络操作等支持。例如UIKit框架,它为应用程序提供了各种可视化组件,窗口(window),视图(view)和按钮组件(UIButton)。Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架,获取照片信息功能的框架,负责加速感应器和三维陀螺仪等硬件支持的框架等等。2.1.3应用程序框架 编写应用程序项目,都是从Cocoa Touch层开始的,具体来说是从UIKit Framework开始的。iOS常用的SDK框架如下: AddressBook.framework 提供访问存储核心数据库中用户联系人信息的功能。 AddressBook.framework提供一个用户界面,用于显示存储在地址薄中的联系人详情。 AudioUnit.framework提供一个接口,让我们的应用程序可以对音频进行处理。 AudioToolbox.framework和AVFoundation.framework提供音频录制和回放的底层API,同时也负责管理音频硬件。 CFNetwork.framework访问和配置网络,像HTTP,FTP和Bonjour Services等。 CoreFoundation.framework提供抽象的常用数据类型,如Unicode、strings、XML、URL等。 CoreGraphics.framework提供2D绘制的基于C的API。 Foundation.framework提供Object-C的基础类(像NSObject)、基本数据类型和操作系统服务等。 GameKit.framework为游戏提供网络功能,点对点互联和游戏中的语音交流。 MapKit.framework为应用程序提供内嵌地图的接口。 MediaPlayer.framework提供视频播放和音频的功能。 MessageUI.framework提供视图控制接口用以处理E-mail和短信。 OpenGLES.framework提供简洁而高效的绘制2D和3D图形的OpenGL API。 QuartzCore.framework提供动画特效以及通过硬件进行渲染的能力。 StoreKit.framework为应用程序提供在程序运行中消费的支持。 SystemConfiguration.framework检测当前网络是否可用和硬件设备状态的能力。2.2 SQLite数据库介绍 SQLite, 是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头,SQLite也迎来了一个版本 SQLite 3已经发布。2.3 XCode Xcode 2.0 是开发人员建立 Mac OS X 应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径。Xcode 2.0 将 Mac OS X 的轻松使用,UNIX 能量以及高性能的开发技术集合在一起。 不管你用 C、C+、 Objective-C或 Java编写程序,在 AppleScript里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现 Xcode 编译速度极快。每次操作都很快速和轻松。 Xcode 4 的虚拟模型和设计功能让你可以更轻松的开发和维护应用程序。只需选择应用程序中想要编写的部分,然后模型和设计系统将自动创建分类图表,不仅可以显示编码,还可以让你进行浏览。Mac OS X Core Data API 帮你的应用程序创建数据结构。更棒的是,它还自动提供撤消、重做和保存功能,无需编写任何编码。 Xcode 整合的 Apple Reference Library 为所有的Apple开发者文件提供一个单独的搜索和显示界面,这些文件包括来自苹果电脑公司网站的在线文件,以及存放在你电脑上的文件。新的参考资料库甚至可以帮你将定期更新资料下载到你的电脑,保持文件的最新状态。Xcode 将帮你快速找到最新的答案。 Xcode 4 的核心部分是苹果电脑公司下一代业界标准的 gcc 编译器gcc 4.0。新的编译器利用许多先进的最优化技术帮你从现存编码中获得更多性能。从超级计算世界借鉴来的自动向量化(Auto-vectorization)技术可以帮助你释放每台 Intel 系统中速度引擎的能量,而不需要编写向量化编码。其他的最优化工具则支持反馈定向的最优化,以及隐藏模块分析。 Xcode 将赋予你创建诸如计算和渲染引擎应用程序的能力,这些应用程序使用64位内存定址。这非常适合数据集中的应用程序,其通过访问内存中的数据运行速度更快,远胜于磁盘访问。Xcode 将为你提供工具来建立并调试适合 Intel Core i5, i7 和 Mac OS X Lion 的 32 或 64 位应用程序,还可以让你创建包含32位和64位执行能力的 Fat Binaries。 众所周知,在构建中引进多重处理器可以提高速度,Xcode 能帮你实现这个明显的结论。利用支持 Rendezvous 的分布式构建功能,可以轻易地把编译工作量分散到闲置的电脑上来寄放构建,或者更好是在单独的电脑上开发一个专门的 Xserve 构建寄放区,快速处理那些耗时的任务。第3章 在线音乐播放系统需求分析 根据第一章所定义的课题研究方向及目标,本章将对系统功能进行具体的需求分析,具体分析音乐播放娱乐系统所要实现的功能以及欲达到的效果。3.1 在线音乐播放系统的可行性分析1.使用Objective-C编程技术 Objective-C是C语言的面向对象扩展,可以将其称为“带有对象的C”。相对于其他面向对象语言,Objective-C更加容易学习。 (1)动态绑定 函数和消息的最根本不同是:函数和它的参数是在编译的时候已经确定下来,但是消息和接收对象知道程序已经在运行,消息在传递时才能确定下来。确切的消息方法实现依赖于消息的接收者,不同的接收者可能有相同的方法名不同的方法实现,只有在消息接收时才能确定(动态类型),通过源代码的类型定义并不能完全确认接收者的类型。运行时消息例程查找接收者和消息方法,找到消息方法实现的机器码,呼叫这个方法,传递给它消息实例变量指针。(2)多态性 在Objective-c中消息的调用看上去和标准C中的函数调用相似,但因为方法属于一个对象,消息的行为与函数调用还是不同。在一些情况下,一些对象仅能对针对它涉及的方法起作用,不能被其他类的方法使用,即使这些类有同样名称的方法。这意味着两个对象对同样的消息有着不同的响应,即多态性。Objective-c中多态性和动态绑定配合使用,可以使代码提供给任意数量不同类型的对象使用,这些对象不需要再写代码的时候就已经定义好,它们可以是以后开发的对象,也可以是其他项目的对象。(3)面向对象 面向对象程序构建在多种对象之上,基于Cocoa框架的程序可能使用NSMatrix对象、NSWindow对象、NSDirectonary对象、NSFont对象以及许多其它对象。在Objective-c中通过定义类来定义对象。面向对象让开发者更容易开发应用程序软件,以及更加规范化。 (4)继承性 类的定义是累进的,任一个新类都是在另一个类的基础上定义的,新类继承了它的方法和实例变量。继承使所有的类构成一颗树形的结构,在Objective-c中使用类一般要继承或间接继承于基类:NSObject,因为NSObject提供了大量的有用特性。比如,一些图形类,需要继承于Shape类,而Shape是Graphic类的子类,Graphic又继承于NSObject类,因此,还是间接继承于NSObject类。类的继承关系图3-1所示:NSObjectGraphicImageTextShapeLineRectangleCircleSquare图3-1 Objective-C类继承图1.使用工具方面:开发环境为xcode 4.2。2.操作系统方面:使用mac 10.8操作系统。3.硬件可行性一台已经安装有所有必备的软件及相应软件设备的计算机;内存要求大于或等于2G。4.社会因素和市场因素可行性 如今社会发展迅速,每个人都不再满足于功能单一的音乐播放器,越来越多地倾向于娱乐性能完备的音乐播放系统。用户对在听音乐的同时还可以玩小游戏来更加的享受。 按照目前市场情形,越来越多的移动开发者涌进iOS开发领域。iOS平台上应用软件,App Store的支付模式更为成熟而且有监管,另外iOS的兼容性问题小,开发人员不用考虑太多的配置兼容问题,美观大方的外形,更是吸引了大量的用户。而且其良好的用户体验,都为iOS的发展奠定了良好的基础。该音乐播放系统,可以在听歌的同时玩本地小游戏,给用户极好的娱乐效果。3.2 在线音乐系统功能需求分析 本系统是基于iOS平台开发的一款音乐播放娱乐系统,将要应用在iOS移动通讯设备上,能够尽可能的满足用户更方便更快捷的娱乐需求,对于一个音乐播放器听歌,首先能够播放本地音乐和在线搜索。用户可以在音乐的信息界面看到所有的音乐文件。 在享受歌曲的过程中,会让用户感觉枯燥无味。本系统自带的小游戏可以有效的避免用户等待,画面绚丽的推箱子,可以有效缓解疲劳。 选择下图为本系统的功能模块图:(如图3-2) 图3-2 功能模块图3.2.1 功能需求 根据系统功能划分,本系统详细需求描述如下:1音乐播放功能需求 为了给用户最好的用户体验,本功能模块实现mp3音乐文件的播放,歌曲的切换,音乐的暂停,音乐的开始,歌曲图片的显示,音量的调整,随意拖动滚动条来播放音乐等。2音乐播放列表功能需求 该模块实现的是音乐信息的管理,包括播放哪一个音乐, 本地音乐播放列表的显示,所有的音乐信息等等。3在线搜索音乐功能需求 该模块实现的是使用网络API来在线搜索音乐,还包括搜索结果的正确显示等等。4在线音乐下载功能需求 该模块实现的是将通过网络API搜索到的音乐下载到本地,并显示下载列表。5音乐视频播放功能需求 该模块实现的是播放本地音乐视频的功能6水果连连看功能需求 本模块实现了水果连连看的玩法,仅使用了第一关,其中实现了无障碍消去水果的功能。7音乐播放系统设置的功能需求 本模块实现的是音乐播放的模式设置以及改变系统的主题功能第4章 在线音乐播放系统设计系统设计阶段主要的任务是系统各个模块的具体设计与实现4.1 在线音乐播放系统总体架构设计 该系统七个模块, 分别为音乐播放界面,本地音乐播放列表界面,在线搜索界面,在线下载界面,水果连连看游戏界面,音乐视频播放界面,音乐播放设置界面。在线音乐播放系统总体流程图如图4.1所示图4.1总体架构图4.2 模块功能设计下面以具体的效果来展示各个功能模块。4.2.1 音乐播放功能模块1实现mp3音乐文件的播放2歌曲的切换3音乐的暂停,音乐的开始4歌曲图片的显示5音量的调整6随意拖动滚动条来播放音乐。音乐播放功能模块运行效果图如下4.2.1-1, 4.2.1-2所示。图4.2.1-1音乐播放界面图4.2.1-2音乐音量设置界面4.2.2 音乐信息功能模块1所有音乐播放列表的显示2音乐的选择运行效果图如下4.2.2-1所示。图4.2.2-1音乐信息默认界面4.2.3 在线搜索音乐功能模块1按歌曲名进行搜索音乐2把搜索结果正确显示到界面上运行效果图如下4.2.3-1, 4.2.3-2图4.2.3-1 在线搜索界面图4.2.3-2 搜索我和你结果显示4.2.4 在线下载功能模块1实现了在线下载的功能运行效果图如下4.2.4-1 4.2.4-2图4.2.4-1 在线下载默认界面图4.2.4-2 正在下载界面显示4.2.5 水果连连看功能模块1体现的本系统的实用性和娱乐性运行效果图如下4.2.5-1图4.2.5-1 水果连连看显示4.2.6 音乐视频功能模块1.实现了音乐视频的播放运行效果图如下4.2.6-1, 4.2.6-2图4.2.6-1 音乐视频显示图4.2.6-1 音乐视频全屏显示4.2.7 音乐播放设置功能模块1实现了系统播放设置功能运行效果图如下4.2.7-1, 4.2.7-2 ,4.2.7-3图4.2.7-1 播放设置默认界面图4.2.7-2 播放模设置式界面图4.2.7-2 更改系统主题界面第5章 在线音乐播放系统实现根据设计阶段的工作成果系统各个功能模块实现的效果是比较理想的。下面是各个功能模块的实现。5.1 系统初始化的实现在系统的开始,需要实现一个定制的UITabBarController的控件,并且每个UITableBarItem都关联相对应的模块,这是系统初始化核心代码如下: -(void)createTabBarController /创建可变数组 NSMutableArray * tabArray = NSMutableArray allocinitWithCapacity:0; /创建分栏控制器 UITabBarController * tabCtrl = UITabBarController allocinit; tabCtrl.tabBar setBackgroundImage:UIImage imageNamed:"tabbar_bg.png" /1:我的音乐 MyMusicViewController * myLocal = MyMusicViewController allocinitWithTitle:"本地榜单" navTitle:"本地榜单" tabImageName:"local" /创建导航控制器 UINavigationController * navLocal = UINavigationController allocinitWithRootViewController:myLocal; navLocal.navigationBar setBackgroundImage:UIImage imageNamed:"tabbar_bg" forBarMetrics:UIBarMetricsDefault; /添加到数组中 tabArray addObject:navLocal; /2:当前播放 CurrentPlayViewController * current = CurrentPlayViewController allocinitWithTitle:"当前播放" navTitle:"当前播放" tabImageName:"current.png" /创建导航控制器 UINavigationController * navCurrent = UINavigationController allocinitWithRootViewController:current; navCurrent.navigationBar setBackgroundImage:UIImage imageNamed:"tabbar_bg" forBarMetrics:UIBarMetricsDefault; /添加到数组中 tabArray addObject:navCurrent; /3:在线音乐 OnLineMusicViewController * onLine = OnLineMusicViewController allocinitWithTitle:"在线音乐" navTitle:"在线音乐" tabImageName:"online.png" /创建导航控制器 UINavigationController * navOnline = UINavigationController allocinitWithRootViewController:onLine; navOnline.navigationBar setBackgroundImage:UIImage imageNamed:"tabbar_bg" forBarMetrics:UIBarMetricsDefault; /添加到数组中