IOS音乐播放器实现_第1页
IOS音乐播放器实现_第2页
IOS音乐播放器实现_第3页
IOS音乐播放器实现_第4页
IOS音乐播放器实现_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、分类号:分类号:TP311TP311 U U D D C C:D10621-408-(2015)2578-0D10621-408-(2015)2578-0 密密 级:公级:公 开开 编编 号:号: 成成 都都 信信 息息 工工 程程 大大 学学 学学 位位 论论 文文 基于基于 IOSIOS 平台的音乐播放器设计与实现平台的音乐播放器设计与实现 论文作者姓名:论文作者姓名:张进张进 申请学位专业:申请学位专业:信息对抗技术信息对抗技术 申请学位类别:申请学位类别:工学学士工学学士 指指导导教教师师姓姓名名(职职称称) : 林春蔷(讲师)林春蔷(讲师) 论文提交日期:论文提交日期: 201520

2、15 年年 0606 月月 1 1 日日 基于基于 IOSIOS 平台的音乐播放器设计与实现平台的音乐播放器设计与实现 摘摘 要要 音乐播放器是一种用于播放各种音乐的软件,通常它以播放 MP3 格式的音 乐为主,能带给我们美的感受,使我们放松心灵,陶冶情操,本次开发的系统 是基于苹果 IOS 系统的,苹果公司的开发语言 Object-C2.0 是主要的针对苹果 设备的开发语言,而且这门语言现在也非常的成熟,在本文中有些数据是存放 在 plist 文件中的,这款开发的音乐播放器是针对 iPhone 系列手机的。 本文主要介绍了一款运行在 IOS 操作系统上面的音乐播放器的设计开发过 程,但因自己

3、能力有限,所以这次开发的音乐播放器针对的是音乐格式为大众 化的 MP3 格式,这款音乐播放器不仅能播放本地的音乐和 MV,还能完成一些在 线的操作。在功能方面,这次开发的音乐播放器可以搜索和播放本地音乐,实 现歌词和播放时间的同步,还可以播放本地 MV 等。 关键词关键词: iPhone;plist 文件 ;MV;IOS;MP3 (本人只上传了论文文档,文中相对应的有软件和三千字的英文翻译但并未上传,若有感 兴趣的可以联系于我 QQ:)欢迎下载 The Music player Based on IOS System Abstract Music player is a kind of sof

4、tware is used to play all kinds of music. It usually give priority to in order to play the music of the MP3 format.It Can bring us the beautiful feeling, relax our mind, edify sentiment. The development of the system is based on apples IOS system. Apples development language Object - C2.0 is the mai

5、n development language for apple devices. And the language is now very mature. In this article some data are stored in the plist file. The development of music player is for the iPhone series of mobile phone development. This paper mainly introduces a run on IOS operating system design and developme

6、nt process of music player. But because my ability is limited, so the development of music player for music format for popular MP3 format, The music player can play not only the local music and video, also can do some online operation. In terms of function, the development of music player can search

7、 and play local music, lyrics and playing time synchronization, you can also play local MV, and so on. Key words: the iPhone ; plist File ; the MV ; IOS ; MP3 目目 录录 论文总页数:28 页 1 引言.1 1.1 课题开发背景.1 1.2 课题开发的现实意义.1 1.3 课题开发预实现的目标.2 2 系统和开发工具介绍.2 2.1 OBJECTIVE-C 简介.2 2.2 IOS 系统架构 .3 2.3 IOS 程序常用框架 .4 2.

8、4 XCODE开发软件介绍 .5 3 应用分析.5 3.1 需求分析.5 3.2 可行性分析.6 3.3 开发环境分析.7 4 音乐播放系统的具体设计实现.7 4.1 音乐播放系统总体架构图.7 4.2 各模块的设计实现.8 4.2.1 启动欢迎界面的设计.8 4.2.2 我的音乐模块设计.9 4.2.3 音乐馆模块设计.13 4.2.4 在线功能模块的设计.15 4.2.5 更多模块的设计.15 5 音乐播放系统测试效果.16 5.1 功能模块测试.16 5.1.1 启动欢迎界面测试效果图.17 5.1.2 我的音乐模块测试效果图.18 5.1.2 音乐馆模块测试效果图.20 5.1.3 在

9、线功能模块测试效果图.22 5.2 其他测试.23 5.2.1 模拟环境测试.23 5.2.2 真机测试.24 结 语.24 参考文献.26 致 谢.27 声 明.28 1 1 引言引言 1.11.1 课题开发背景课题开发背景 手机的一个重要的功能就是听音乐,一款好的手机音乐播放器可以更好的 体现智能手机的强大。目前中国音乐播放器行业已经具备了相当的规模,并在 国际市场上已有一定的竞争力。苹果手机作为当今中国智能手机市场上不可或 缺的一个品牌,基于 IOS 的手机软件需求量也就相应的越来越大。市场上的音 乐播放器种类繁多,定位不一,基本满足了各层次消费者的需求,例如:酷我 音乐、酷狗音乐、百度

10、音乐、QQ 音乐等等这些大家所熟知的音乐播放器。 对于现如今的移动应用开发产业现状让人眼花缭乱,我们知道主要的移动 操作平台有:IOS、Android、Nokia Symbian、BlackBerry、Java ME、Windows Phone、Flash/Flash Lite、mobile web(WAP/XHTML/CSS/Javascript)。就目前 而言,三大平台(Android、Symbian、BlackBerry)的市场占有率也在逐渐下降, IOS 呈现平稳上升趋势。更何况随着苹果市场占有率越来越大,在 OC 语言的强 势下,相信最近苹果新推的 Swift 语言也将逐渐兴起并代替

11、 OC 成为苹果的主要 开发语言。 那么使用 IOS 系统开发出来的产品有哪些好处呢?答案如下: 1.网站上 App Store 平台的支付模式比较成熟。不仅仅是商业模式上的创 新,更重要的是其他商家无法模仿,并且经过了长时间的运营,App Store 已 经形成完备的支付模式,被大部分用户接受并信赖。 2.IOS 是用 Objective-C 开发。从全球的编程语言排行榜来看,虽然, Objective-C 只有苹果公司一家使用,但是已经排名在前,可见 IOS 开发的普 及性和受欢迎程度,另外,基于 C 语言的,它的运行效率更高。 3.苹果 iPhone 以及所有苹果的硬件软件策略和控制让苹

12、果在用户体验和控 制产品质量方面占尽先机,大部分 IOS 用户能够同时对他们手中的设备进行更 新,这会吸引更多用户。 4.iPhone 在中国极受欢迎。中国的各大移动运营商都积极地与苹果公司合 作,各自推出适合中国人使用的手机套餐和应用,比如中国联通,中国电信等 等,社会各界也对 iPhone 也有很高的评价。 5.IOS 在各国开发者中有很好的学习氛围,如 code4app cocoachina github IOS 开源代码库,都是良好的学习资源。 本人根据当前的形式,决定引用这种这种技术来开发手机应用。 1.21.2 课题开发的现实意义课题开发的现实意义 听音乐已经成为当今社会,人们必不

13、可少的一项娱乐活动。根据调查所得 信息,本人发现最近智能手机用户对较大的音乐播放器应用的喜爱度明显下滑, 而相对的那些小巧的音乐播放器反而被越来越多的用户下载使用。本系统紧跟 当前移动手机开发趋势,基于 iPhone 平台的音乐播放系统。具资源占用率小, 运行效率高,操作简洁,扩展能力强等特点。根据这些信息,设计一款小巧的 基于 IOS 的音乐播放器会很容易得到用户的青睐。同时本人从去年开始接触 IOS,在学习了几个月后,对 IOS 开发有了一些理解,所以对于这次毕业设计, 我就选择了基于 IOS 系统开发一款产品。希望通过这次毕业设计来进一步巩固 自己的 IOS 开发水平。使自己在以后的社会

14、竞争中更加具有优势。 1.31.3 课题开发预实现的目标课题开发预实现的目标 1.音乐播放功能需求,本功能模块实现本地 mp3 音乐文件的播放,歌曲的 切换,音乐的暂停,音乐的开始,歌曲图片的显示,音量的调整,随意拖动滚 动条来控制播放音乐的进度,显示整首音乐的总时间和当前播放的时间,以及 当前音乐播放的模式,如顺序播放,单曲循环,随机播放等,默认情况下是进 入顺序播放的模式,并能实现后台音乐播放功能。 2.音乐播放列表功能需求,该模块实现的是音乐信息整体上的管理,包括 播放哪一个音乐, 本地音乐播放列表的显示,所有的音乐信息等等。 3.在线搜索音乐功能,该模块实现的是使用网络 API 来在线

15、搜索音乐,搜 索歌星基本信息,还包括将搜索结果的正确显示。 4.本地 MV 视频的播放。 2 2 系统和开发工具介绍系统和开发工具介绍 2.12.1 Objective-CObjective-C 简介简介 Objective-C 是扩充 C 的面向对象编程语言。Objective-C 可以在 gcc 运 作的系统上写和编译,因为 gcc 含 Objective-C 的编译器,1980 年代初布莱 德确斯(Brad Cox)在其公司 StepStone 发明了 Objective-C。他对软件设计 和编程里的真实可用度问题十分关心。Objective-C 最主要的描述是他 1986 年 出版的

16、Object Oriented Programming: An Evolutionary Approach. Addison Wesley. ISBN 0-201-54834-8. 优点及缺点: Objective-C 是非常“实际”的语言。它使用 C 写成、很小的运行库,只 会令应用程序的大小增加很小,和大部分操作系统使用极大的 VM 执行时间会取 代整个系统的运作相反,Objective-C 写成的程序通常不会比其原始代码大很 多。而其函式库(通常没附在软件发行本)亦和 Smalltalk 系统要使用极大的内 存来开启一个窗口的情况相反。 Objective-C 的最初版本并不支持垃圾回收

17、。 在当时这是争论的焦点之一,很多人考虑到 Smalltalk 回收时有漫长的“死亡 时间” ,令整个系统失去功用。Objective-C 为避免此问题才决定不拥有这个功 能。虽然某些第三方版本已加入这个功能(尤是 GNUstep), Apple 在其 Mac OS X 10.3 中仍未引入这个功能。 另一个问题是 ObjC 不包括命名空间机制 (namespace mechanism)。取而代之的是程序设计师必须在其类别名称加上前缀, 时常引致冲突。在 2004 年,在 Cocoa 编程环境中,所有 Mac OS X 类别和函式 均有“NS”作为前缀,例如 NSObject 或 NSButt

18、on 来清楚分别它们属于 Mac OS X 核心;使用“NS”是由于这些类别的名称在 NeXTSTEP 开发时定下。 虽然 Objective-C 是 C 的母集,但它也不视 C 的基本型别为第一级的对象。 和 C+ 不同,Objective-C 不支援运算子多载(它不支持 ad-hoc 多型)。亦与 C+不同, 但和 Java 相同,Objective-C 只容许对象继承一个类别(不设多重继承)。 Categories 和 protocols 不但可以提供很多多重继承的好处,而且没有很多缺 点,例如额外执行时间过重和二进制不兼容。 Objective-C 排行榜: TIOBE 2015 5

19、月编程语言榜已于近日发布,本期主要变化是 Objective-C 排名进入前十,排在了第四位。Objective-C 流行的主要原因可能是它和最近 兴起的 Swift 语言是唯一的二种可以为 iPhone 和 ipad 编程的语言。但单从编 程语言的角度来看,诞生于 1986 年的 Object-C 并没有表现出多少新意,但无 疑他的发展前景是巨大的,所以我认为 Objective-C 具有很大的发展空间。 2.22.2 IOSIOS 系统架构系统架构 IOS 基于 UNIX 系统,因此,从系统的稳定性来说它要比其他操作系统产品 好很多。IOS 的系统架构分为四层,由上到下一次为:可触摸层(C

20、ocoa Touch layer) 、媒体层(Media layer) 、核心服务层(Core Services layer) 、核心 操作系层(Core OS layer)如下图 1 所示: 图 1 IOS 系统架构图 1触摸层(Cocoa Touch):为应用程序开发提供了各种常用的框架并且 大部分框架与界面有关,本质上来说它负责用户在 IOS 设备上的触摸交互操作。 2媒体层(Media):通过它我们可以在应用程序中使用各种媒体文件, 进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。 3核心服务层(Core Services):我们可以通过它来访问 IOS 的一些服 务。 4.

21、 核心操作系统层(Core OS):包括内存管理、文件系统、电源管理以 及一些其他的操作系统任务。它可以直接和硬件设备进行交互。 2.32.3 IOSIOS 程序常用框架程序常用框架 应用程序项目都是从 Cocoa Touch 层开始的,具体来说就是从 UIKit Framework 开始的。当在编写程序的过程中需要用到一些特殊功能的时候,我 们应该从框架的最顶端技术开始寻找相应的框架,只有在上层结构无法解决时, 才能使用其下层的技术。其实,顶层的框架已经涵盖了我们绝大多数需要的功 能。IOS 常用的 SDK 框架如下: 1. AddressBook.framework 提供访问存储核心数据库

22、中用户联系人信息的功 能。 2. AddressBook.framework 提供一个用户界面,用于显示存储在地址薄中的 联系人详情。 3. AudioUnit.framework 提供一个接口,让我们的应用程序可以对音频进行 处理。 4. AudioToolbox.framework 和 AVFoundation.framework 提供音频录制和回 放的底层 API,同时也负责管理音频硬件。 5. CFNetwork.framework 访问和配置网络,像 HTTP,FTP 和 Bonjour Services 等。 6.CoreFoundation.framework 提供抽象的常用数据

23、类型,如 Unicode、strings、XML、URL 等。 7.CoreGraphics.framework 提供 2D 绘制的基于 C 的 API。 8. Foundation.framework 提供 Object-C 的基础类(像 NSObject)、基本数据 类型和操作系统服务等。 9. GameKit.framework 为游戏提供网络功能,点对点互联和游戏中的语音交 流。 10.MapKit.framework 为应用程序提供内嵌地图的接口。 11.MediaPlayer.framework 提供视频播放和音频的功能。 12.MessageUI.framework 提供视图控制

24、接口用以处理 E-mail 和短信。 13.OpenGLES.framework 提供简洁而高效的绘制 2D 和 3D 图形的 OpenGL API。 14.QuartzCore.framework 提供动画特效以及通过硬件进行渲染的能力。 15.StoreKit.framework 为应用程序提供在程序运行中消费的支持。 16.SystemConfiguration.framework 检测当前网络是否可用和硬件设备状态 的能力。 2.42.4 XcodeXcode 开发软件介绍开发软件介绍 Xcode 是苹果公司向开发人员提供的集成开发环境(非开源) ,用于开发 Mac OS X、IOS

25、的应用程序。其前身是继承自 NEXT 的 Project Builder,运行 于苹果公司的 Mac 操作系统下。Xcode 2.0 是开发人员建立 OS X 应用程序的 最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径。Xcode 2.将 OS X 的轻松使用,UNIX 能量以及高性能的开发技术集合在一起。 不管你用 C、C+、Objective-C 或 Java 编写程序,在 AppleScript 里编 写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现 Xcode 编译速度 极快。每次操作都很快速和轻松。Xcode4 的虚拟模型和设计功能让你可以更轻 松的开发和维护应用程序。

26、只需选择应用程序中想要编写的部分,然后模型和 设计系统将自动创建分类图表,不仅可以显示编码,还可以让你进行浏览。Mac OS X Core Data API 帮你的应用程序创建数据结构。更棒的是,它还自动提供 撤消、重做和保存功能,无需编写任何编码。 Xcode 整合的 Apple Reference Library 为所有的 Apple 开发者文件提 供一个单独的搜索和显示界面,这些文件包括来自苹果电脑公司网站的在线文 件,以及存放在你电脑上的文件。新的参考资料库甚至可以帮你将定期更新资 料下载到你的电脑,保持文件的最新状态。Xcode 将帮你快速找到最新的答案, 本程序设计采用的是 Xco

27、de5.1.1 版本。 3 3 应用分析应用分析 3.13.1 需求分析需求分析 需求分析是完成一个应用必不可少的部分,在进行一款项目开发的过程中, 开发者必须确定客户的需求,在确定了客户需求后才能进行应用的开发。 我根据当前社会形势,苹果系统在中国逐渐流行,单单是 iOS 方面的音乐 播放器行业也已经具备了相当的规模。市场上的音乐播放器品牌繁多,定位不 一,基本满足了各层次消费者的需求。最新的调查显示比较大的音乐播放器市 场,并不是很乐观。而外形新颖、小巧轻便灵活的迷你音乐播放器却很受年轻 人的青睐和欢迎。虽然国内的较大的音乐播放器销售状况不是很好,但是迷你 音乐播放器却是个例外,市场发展前

28、景不容小觑。基于此,设计音乐播放器重 点还是在于美观的外形和其吸引人的性能,小体积却可以实现相对更大的功率, 新型的迷你音乐播放器要有其他的附加功能,可以更好的吸引用户,参考了市 面上各中音乐播放器的外观和功能,下面是具体各个模块所提出的要求和要实 现达到的效果: 1.欢迎界面设计要求:要求整体上符合大部分软件的启动要求,能够实现 一定的动画效果。用户打开启动界面后,要求能够看到一些对本软件的介绍流 程。 2.我的音乐模块设计要求:要求画面设计较好,能够以歌名的形式列出所 有本地音乐,能够对列表中歌曲进行一些操作,比如移动或删除歌曲等,在音 乐的播放界面要自定义各种控件来显示相关内容,在有歌词

29、的情况下要显示出 播放的歌词并与播放时间同步,要设计有三种播放模式,单曲循环,顺序播放, 随机播放,能够控制播放时的音量,能显示出播放的进度条等。 3.音乐馆模块设计要求:能够达到以图片的形式显示出视频按钮,点击图 片按钮能够进入相应视频的播放界面开始播放。 4.乐库模块设计要求:要求能够进行一些在线的操作,比如实现在线音乐 搜索功能,在线歌星信息查询功能等。 5.更多模块设计要求:能够设置和显示一些本音乐播放器的一些基本设置。 3.23.2 可行性分析可行性分析 1.经济可行性分析:这款基于 IOS 的音乐播放器的开发是通过苹果系统的 Xcode5.1.1 来进行的。虽然本人不可能购买苹果笔

30、记本来开发这款项目,但现 阶段人们可以在不同的电脑上运行苹果系统。那就是人们所说的黑苹果,通过 一定的技术使非苹果笔记本也可运行苹果系统。开发音乐播放器所需的图片, 自己可以不通过专业人士来绘制。自己通过破解现有 App store 上的在线应用, 来获取自己想要的资源。并且这个过程很是简单,不存在浪费人力物力的现象。 所以得出开发一款基于 IOS 的音乐播放器在经济方面是可行的。 2.技术可行性分析:开发基于 IOS 的音乐播放器运用到的技术是 Object- C,以及一些 IOS 开发的 UI 设计,某些类库的应用等等。就技术方面而言,自 己学习 IOS 技术已经有四五个月的基础了,相对于

31、开发一款音乐播放器而言自 己的技术是完全可以胜任的。而自己在黑苹果上装的 Xcode 完全可以胜任这次 开发的需求。从而分析得出开发这款音乐播放器在技术方面是可行的。 3.社会可行性分析:开发这款音乐播放器,本人不是为了盈利的目的不会 损害到任何人的利益,一是为了巩固自己对 OC 的知识,二是为了应对学校毕业 设计的检查,这款音乐播放器我自信虽有一定的可取的地方,但自己不会发布 出去,所以对周围的人不会造成什么利益冲突。本人开发这款音乐播放器符合 国家的方针政策,不影响任何组织的利益,没有宗教方面的宣传同时不会影响 社会稳定。所以可以得出本人开发基于 IOS 的音乐播放器在社会方面是可行的。

32、所以,综上所述本人的基于 IOS 的音乐播放器的开发是可以的,是能实现 的。 3.33.3 开发环境分析开发环境分析 1.使用工具方面:开发环境为 X-code 5.1.1。 2.操作系统方面:使用 mac 10.10 操作系统。 3.开发语言:Object-C2.0 4.硬件可行性:一台已经安装有所有必备的软件及相应软件设备的计算机; 内存要求大于或等于 2G,或具有相关条件计算机上的虚拟机也行。 4 4 音乐播放系统的具体设计实现音乐播放系统的具体设计实现 4.14.1 音乐播放系统总体架构图音乐播放系统总体架构图 音乐播放器的实现主要靠各个模块的具体实现,该系统有 5 个大的模块, 分别

33、为欢迎界面,我的音乐界面,音乐馆界面,乐库界面,更多界面,整个音 乐播放系统的总体设计流程图如下图 2 所示: 图 2 总体设计架构图 在整个项目的 Xcode 开发软件设计过程中的各个页面的场景的布局,以及 每个页面之间的连线关系如下图 3 所示: IOS 音乐播放器系统 欢迎界面模块 我的音乐模块 音乐馆模块 乐库模块 更多模块 音乐界面展示 全部歌曲 歌曲播放 歌曲编辑 本地视频播放 在线搜索 在线音乐搜索 在线歌手搜索 更多界面展示 图 3 项目布局图 4.24.2 各模块的设计实现各模块的设计实现 .1 启动欢迎界面的设计启动欢迎界面的设计 1.首先,是界面场景控件的

34、布局,在项目中的 StoryBoard 中找到如上图 3 中的场景界面,拖动一个名为 UIPackerView 的控件,并创建相对应的类并和该 场景绑定起来。在该类中设置 UIPackerViewDelegate,UIPackerViewDataSource 的委托,并实现该委托中的 一些方法,主要代码方法如下: /每行的标题显示什么 -(NSString*)pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component /有多少个的 UIPickerView -

35、(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView /每个 UipickerView 中显示多少行 -(NSInteger)pickerView:(UIPickerView*)pickerView numberOfRowsInComponent:(NSInteger)component /点中UIPickerView每行执行的方法 -(void)pickerView:(UIPickerView*)pickerView didSelectRow:(NSInteger)row inComponent:(NSInt

36、eger)component 2.在界面上拖放一个按钮 Button 控件,设置其圆角为 25 并将按钮连线好 对应的方法,点击确定后通过 Segue 来跳转到下一个界面。 3.欢迎界面的设计是可以左右滑动来显示图片,先将各个图片导入项目中, 图片是依靠的 UIScrollView 控件的,设置这个控件对象的 contentSize 和 contentOffset 等属性值的大小,主要代码如下: UIScrollView*scrollView=UIScrollView allocinitWithFrame:self.view.frame; /设置重要属性 scrollView.contentS

37、ize = CGSizeMake(scrollView.frame.size.width*self.images.count, 0); self.view addSubview:scrollView; /翻页的时候 整页翻 scrollView.pagingEnabled = YES; /创建好scrollView的被委托(代理)对象 scrollView.delegate = self; /加入界面提示控件 UIPageControl *pageControl = UIPageControl allocinit; self.pageControl = pageControl; /设置位置与界

38、面的关系 pageControl.frame = CGRectMake(0, self.view.frame.size.height-70, self.view.frame.size.width, 20); /设置点的个数 pageControl.numberOfPages = self.images count; pageControl.pageIndicatorTintColor = UIColor orangeColor; pageControl.currentPageIndicatorTintColor = UIColor redColor; self.view addSubview:

39、pageControl; .2 我的音乐模块设计我的音乐模块设计 要显示出所有的歌曲,每行数据是要放在 TableView 表中的,这里我把每 行需要的数据,包括图片,字等素材是放在 plist 文件中的,在该场景对应的 整个类中,初始化时就去 plist 文件中取出数据放在 TanbleView 表中,并设置 相关属性。获取音乐列表设计流程图如下图 4 所示: 图 4 音乐列表设计图 其主要代码如下: /初始化时从plist中取出文件中的内容放入字典中 - (void)viewDidLoad /整个表有多少个分区 - (NSInteger)numberOfSectionsIn

40、TableView:(UITableView *)tableView /每个分区有多少个行 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section /分区头有多高 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section /分区尾有多高 - (CGFloat)tableView:(UITableView *)tableView heightForFoot

41、erInSection:(NSInteger)section /每行显示什么内容 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath /点击某行时执行的方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath 获取本地音乐 舍弃 放入播放列表 开始播放 初始界面 否 是 判断本地音乐格 式是否是 mp3 *)indexPath 为了获取

42、到本地音乐,我直接对本地音乐文件进行操作,将音乐文件中以 mp3结尾的内容全都放入一个临时数组中,后面再直接去取这个数组中的内容即 可,对文件操作及其他主要代码如下: /每个分区有多少个行 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section /每行显示什么内容 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath /是否

43、点击了某一行 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath /点击跳转时是否有相应的segue来判断具体跳到哪一个页面 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender /是否能够对表中的数据每行进行编辑 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)index

44、Path /具体编辑某一行 -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath /编辑模式 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath /是否可以移动每行 - (

45、BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath /得到移动时每行的下标 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath 下面是音乐播放界面的搭建和具体代码的设计过程,因为音乐播放是整个 项目中的重中之重,所以我会详细的介绍音乐播放的设计过程和代码展示,这 段代码

46、中的内容就不会省略,首先是音乐播放界面,在 StoryBoard 控件一栏中, 拖出一个继承与 UIViewController 的场景,创建对应的类并连接,在该场景中 分别拖入以下控件:2 个 UILabel,2 个 UISlider,1 个 UIImageView,1 个 UISegmentedControl,1 个 UITableView,3 个 UIButton 并摆放和固定好他们 的位置,将各个控件对应的属性分别连入interface 类中。刚开始进入播放界 面时需要判断当前的模仿模式和设置是否能够后台播放,调用一些去取该音乐 的背景图片的方法,调用取歌词使歌词和播放时间同步的一些方

47、法。这里解析 歌词和音乐背景图片的代码我就不放在这里了,详见项目,因为要保持播放时 间进度条的不断前进,设置一个计时器,不断执行计时器里面的方法。这里播 放音乐所用的是系统的音频播放系统,导入了系统的#import库文件和相应的 AVAudioPlayerDelegate 委托,音乐播放的设 计流程图如图 5 所示: 图 5 音乐播放界面设计图 具体代码如下: /初始化播放音节界面 - (void)viewDidLoad super viewDidLoad; self.app = UIApplication sharedApplication.delegate; /取出播放模式 NSUserDefaults *ud = NSUserDefaults standardUserDefaults; 点击音乐 判断当前播放模式设置后台播放 开始播放 获取当前播放时间 获取总的音乐时间 控制当前音量解析歌词显示 解析音乐背景图片 当前音乐播放进度条 self.playModeSC.selectedSegmentIndex = ud integerForKey:playmode; self p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论