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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(iOS音乐播放器设计毕业设计.doc)为本站上传会员【人****来】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

iOS音乐播放器设计毕业设计.doc

1、唐 山 学 院 毕 业 设 计 1引言 1.1选题背景 随着智能手机的大众化,越来越多的人应用智能手机。相对的对手机软件的需求也就越来越多。当今时代手机不再只是用来打电话、发短信的工具,反而对手机的娱乐功能要求越来越高[1]。手机的一个重要的功能就是听音乐,一款好的手机音乐播放器可以更好的体现智能手机的强大。目前中国音乐播放器行业已经具备了相当的规模,并在国际市场上已有一定的竞争力。苹果手机作为当今中国智能手机市场上不可或缺的一个品牌,基于iOS的手机软件需求量也就相应的越来越强。市场上的音乐播放器品牌繁多,定位不一,基本满足了各层次消费者的需求,例如:酷我音乐、酷狗音乐、百度音乐、

2、QQ音乐等等这些大家所熟知的音乐播放器已经在苹果软件中占据了一定的地位。智能手机的应用使现代人的生活更加的方便。 伴随着苹果手机进入中国市场,相应的iOS技术逐渐流行起来。而对于开发苹果应用的语言——Object-C,也成为当今社会最流行的开发语言,并且保持着强劲的上升趋势,隐隐有超过C语言的现象[2]。对于其他的开发语言,例如java、javascripe,Object-C以其强大的优势遥遥领先于这些其他的编程语言。本人根据当前的形式,决定引用这种这种技术来开发手机应用。 1.2设计目的及意义 听音乐已经成为当今社会,人们必不可少的一项娱乐活动。根据调查所得信息,本人发现最近智能手机用

3、户对较大的音乐播放器应用的喜爱度明显下滑,而相对的那些小巧的音乐播放器反而被越来越多的用户下载使用。苹果系统的软件具有的特点就是美观、简洁、易操作。根据这些信息,设计一款小巧的基于iOS的音乐播放器会很容易得到用户的青睐。同时本人从去年开始接触iOS,在学习了几个月后,对iOS开发有了一些理解,所以对于这次毕业设计,我就选择了基于iOS系统开发一款产品。希望通过这次毕业设计来进一步巩固自己的iOS开发水平。使自己在以后的社会竞争中更加具有优势。 1.3设计思想和目标 设计思想:自己的这款音乐播放器设计的过程是按照一般的应用开发流程进行的。自己首先调查了当今社会,人们对音乐播放器的需求,从中

4、得出现阶段手机用户需要的是小巧、方便的音乐播放器。从而决定自己开发一款小巧的音乐播放器。在有了用户的需求后,本人开始开发属于自己的音乐播放器。在真正设计音乐播放器的过程中,本人先决定了音乐播放器的整体框架结构,应用的图片出处等等这些开发必需的部分。于是自己借鉴酷狗音乐的框架,开发一款精简的酷狗音乐播放器。在决定了整体框架后,就是真正的开发了。自己将酷狗音乐中与播放无关的部分删除,只保留他的播放功能,歌词显示功能音乐下载功能等等。下载功能的实现本人决定针对这款音乐播放器设计出一个可供下载的网站以及服务器。 设计目标:虽说这款应用自己不打算上线,但自己依旧打算使其完美。拥有播放器的一般功能,可以

5、根据不同的歌曲显示不同的歌词,进度条根据时间显示播放进度,根据不同的音乐信息进行选择,根据搜索到的歌曲信息,下载自己喜爱的歌曲。在完成这些功能的过程中来巩固自己学到的知识 2 应用分析 2.1可行性分析 可行性分析也可称为可行性研究,是在网上调查的基础上并辅助其他的信息渠道,针对基于iOS的音乐播放器的开发是否具备必要性和可能性。对新的音乐播放器的开发从技术、操作、经济等不同方面进行分析研究,来保证投资的失误,保证音乐播放器的开发成功。就我们学的的知识知道可行性分析可以在最短的时间内分析出这款基于iOS的音乐播放器是否可以达到预定的效果。 (1)经济可行性分析:这款基于

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

7、自己学习iOS技术已经有四五个月的基础了,相对于开发一款音乐播放器而言自己的技术是完全可以胜任的。而自己在黑苹果上装的Xcode完全可以胜任这次开发的需求。从而分析得出开发这款音乐播放器在技术方面是可行的。 (3)社会可行性分析:开发这款音乐播放器,本人不是为了盈利的目的不会损害到任何人的利益。这款音乐播放器虽有一部分按照酷狗音乐来完成,但自己不会发布出去,所以不会影响到酷狗公司的利益。本人开发这款音乐播放器符合国家的方针政策,不影响任何组织的利益,没有宗教方面的宣传同时不会影响社会稳定。所以可以得出本人开发基于iOS的音乐播放器在社会方面是可行的。 所以,综上所述本人的基于iO

8、S的音乐播放器的开发是可行的。 2.2需求分析 需求分析指的是在建立一个新的应用的时,就这个新的应用的目的、范围、定义及功能这些方面所要做的工作。需求分析是完成一个应用必不可少的部分。在进行一款项目开发的过程中,开发者必须确定客户的需求,在确定了客户需求后才能进行应用的开发。 根据当前社会形势,苹果系统在中国逐渐流行,单单是iOS方面的音乐播放器行业也已经具备了相当的规模[3]。市场上的音乐播放器品牌繁多,定位不一,基本满足了各层次消费者的需求。最新的调查显示比较大的音乐播放器市场,并不是很乐观。而外形新颖、小巧轻便灵活的迷你音乐播放器却很受年轻人的青睐和欢迎。虽然国内的较大的音乐播放器

9、销售状况不是很好,但是迷你音乐播放器却是个例外,市场发展前景不容小觑。基于此,设计音乐播放器重点还是在于美观的外形和其吸引人的性能,小体积却可以实现相对更大的功率,新型的迷你音乐播放器要有其他的附加功能,可以更好的吸引用户。 2.3系统开发工具介绍 2.3.1 Objective-C技术 Object-C是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。1980年代初布莱德·确

10、斯在其公司Stepstone发明Objective-C。他对软件设计和编程里的真实可用度问题十分关心,目前主要是编写iOS操作系统应用程序的利器。近几年Objective-C排名大幅提升,它的流行当归功于iphone的成功,因为Objective-C一直被用于编写iPhone应用程序[4]。Objective-C是非常实际的语言。它是一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其原始码大很多。而其函式库亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。 2.3.2 X

11、code开发工具 Xcode是开发人员建立基于iOS的应用最快捷的方式。Xcode是苹果公司向开发人员提供的集成开发环境。其运行于苹果公司的Mac操作系统下。 不管你用C、C++、Objective-C或Java编写程序,在AppleScript里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现 Xcode 编译速度极快,每次操作都很快速和轻松[5]。 苹果公司为用户提供了全套免费的Cocoa程序开发工具。Mac OS X一起发行,在苹果公司官方的网站下载[6]。 2.3.3 SQLite简介 SQLite是一款轻型的数据库[7]。是遵守ACID的关联式数据库管理系统,它的设

12、计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目[8]。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通

13、信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。 2.3.4 Visual Studio简介 Visual Studio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP,并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它

14、还支持 IBM DB2和Oracle数据库。Visual Studio中的编程语言运行于.NET Framework中。Framework有助于基于Web和Windows的应用程序开发,允许来自不同语言的对象共同运行,并标准化了语言引用数据和对象的方式。Visual Studio .NET是微软公司推出的程序开发工作。和以前的Visual Studio相比,Visual Studio .NET 是一个质的飞跃。C # 是Visual Studio .NET的重要组成部分。在Visual Studio .NET 平台上使用C #语言可以开发出各种各样的应用程序[9]。在.NET平台中,C#语言是

15、一种脚本语言,即简化的C#语言。C#语言已经通过国际标准组织的认证,成为一种国际标准的计算机语言。 .NET Framework 是用于生成、部署和运行应用程序的多语言环境。.NET Framework通过公共语言运行库、.NET框架类库、Microsoft 中间语言、JIT即时编译等机制生成应用程序。 3应用总体设计 在经过可行性分析后本章将主要介绍应用的总体设计。应用所实现的功能的强弱是衡量一款应用的标准。通过对音乐播放器的全面分析并结合调研的情况,得出了这款音乐播放器的结构图与功能模块图。 3.1音乐播放器的功能模块概况 根据需求分析的结果得到音乐播放器的基本模块包括以下几

16、个模块 (1). 我的音乐模块:其中主要有本地音乐、我喜欢的音乐、最近播放的音乐的几个部分组成。 (2).网络音乐模块: 该模块主要包括最新、歌单、排行榜、歌手等几部分构成。 (3).更多更能模块:该模块主要包括换肤、意见反馈、设置及部分构成。 根据音乐播放器的功能分析可以画出音乐播放器的功能模块图,如图1所示 图 1 音乐播放器功能模块图 3.2音乐播放器各功能模块介绍 各功能模块介绍如下: (1) 我的音乐模块 用户可以通过此模块来播放本地的音乐。具体播放功能包括音乐的演唱、歌词的显示、播放进度的显示、歌曲的暂停、播放下一首等功能。用户可以通过本地音乐列表将歌曲存储

17、成我喜欢的音乐,同时在播放的过程中会将播放过的歌曲名存储起来,对用户进行提示。 (2)网络歌曲模块 用户可以通过本模块进行选择网络上的音乐信息,同时用户可以将网络上的歌曲下载到本地音乐中进行播放,用户根据不同的歌曲信息进行歌曲搜索,方便了用户的使用。 (3)更多功能模块 用户可以通过此模块对本款音乐播放器进行换肤操作,更改本款音乐的皮肤。用户可以通过意见反馈页面来提出自己的意见。相应的设置模块,用户可以进行一些对本应用的操作,使本应用更加适合用户需求。 4音乐播放器详细设计 4.1音乐播放器界面设计 (1)我的音乐界面如图4-1所示 图4-1 我的音乐 用户可以

18、通过此界面选择不同的信息。点击本地音乐可以进入音乐播放界面,点击我喜欢可以进入我喜欢界面,其中的歌曲是自己从本地音乐界面中选取出来的,而最近播放界面显示用户最近播放的歌曲。此界面部分相关代码如下: - (void)viewDidLoad { mainTableViewArray=[[NSMutableArray alloc]initWithObjects:@"本地音乐",@"iPod音乐",@"我喜欢",@"本地收藏",@"网络收藏",@"最近播放", nil]; UIView *vi=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 28

19、0, 480)]; [self.view addSubview:vi]; [vi setBackgroundColor:[UIColor colorWithRed:58/255.0 green:58/255.0 blue:58/255.0 alpha:1]]; lableOne=[[UILabel alloc]initWithFrame:CGRectMake(11, 72, 25, 120)]; lableOne.text=@"我的音乐"; lableOne.userInteractionEnabled=YES; lableOne.highligh

20、ted=YES; [vi addSubview:lableOne]; lableTwo=[[UILabel alloc]initWithFrame:CGRectMake(11, 140+57, 25, 120)]; lableTwo.text=@"网络音乐"; lableTwo.textColor=[UIColor colorWithRed:200/255.0 green:200/255.0 blue:200/255.0 alpha:1]; lableTwo.userInteractionEnabled=YES; [vi ad

21、dSubview:lableTwo]; lableThree=[[UILabel alloc]initWithFrame:CGRectMake(11, 280+52, 25, 120)]; lableThree.text=@"更多功能"; lableThree.textColor=[UIColor colorWithRed:200/255.0 green:200/255.0 blue:200/255.0 alpha:1]; [vi addSubview:lableThree]; UITapGestureRecognizer *

22、tapGestureOne=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(choseIt:)]; [lableOne addGestureRecognizer:tapGestureOne]; [tapGestureOne release]; } 此段代码得到具体含义是,加载初始界面并添加相关的手势来控制mainTableViewArray显示的内容。随后在加载tableVIew的过程中运行UITableview的方法即:cellForRowAtIndexPath: 和didSele

23、ctRowAtIndexPath:其中cellForRowAtIndexPath是控制每一个cell所显示的内容,而didSelectRowAtIndexPath则是在这些cell被点中时判断哪个被点中了,要运行什么方法。 (2) 网络音乐界面如图4-2所示 图4-2 网络音乐界面 用户可以从此界面中选择网络相关的音乐。点击歌单会弹出歌单界面,其中是各种流行的单曲。点击排行榜则会弹出当前的流行歌曲排行榜,同样点击歌手则会弹出歌手界面。 此界面的代码是只要将最初的mainTableViewArray的显示内容改变了,并通过相应的手势来达到内容的改变。手势方法相关的代码如下: -

24、void)choseIt:(UITapGestureRecognizer *)tap { [mainTableViewArray removeAllObjects]; CGPoint point=[tap locationInView:self.view]; if(CGRectContainsPoint(lableOne.frame, point)) { flag=0; [array removeAllObjects]; mainTableViewArray=[[NSMutableArray al

25、loc]initWithObjects:@"本地音乐",@"iPod音乐",@"我喜欢",@"本地收藏",@"网络收藏",@"最近播放", nil]; lableTwo.highlighted=NO; lableThree.highlighted=NO; lableOne.highlighted=YES; lableOne.highlightedTextColor=[UIColor whiteColor]; signImage.frame=CGRectMake(43, 68, 4, 120);

26、} else if(CGRectContainsPoint(lableTwo.frame, point)) { flag=1; [array removeAllObjects]; mainTableViewArray=[[NSMutableArray alloc]initWithObjects:@"搜索",@"最新",@"歌单",@"排行榜",@"歌手",@"分类",@"电台",@"MV", nil]; signImage.frame=CGRectMake(43, 197, 4, 120);

27、 lableOne.highlighted=NO; lableThree.highlighted=NO; lableTwo.highlighted=YES; lableTwo.highlightedTextColor=[UIColor whiteColor]; } else { flag=2; [array removeAllObjects]; mainTableViewArray=[[NSMutableArray alloc]initWithObj

28、ects:@"仅在wifi下联网",@"换肤",@"睡眠定时",@"wifi电脑传歌",@"91助手/iTools传歌",@"意见反馈",@"设置",@"应用",nil]; signImage.frame=CGRectMake(43, 332, 4, 120); lableTwo.highlighted=NO; lableOne.highlighted=NO; lableThree.highlighted=YES; lableThree.highlightedTextColor=[UIColor whit

29、eColor]; } [tableVIew reloadData]; } 在此方法中不只改变了mainTableViewArray的内容,同时改变了选中字体的颜色以及未选中字体的颜色。同时signImage的位置也发生相应的改变。 (3)更多功能界面如图4-3所示 图4-3 更多功能界面 用户可以在此界面进行播放器的设置,例如点击换肤则会弹出换肤界面,在换肤界面会有三种皮肤供用户选择。点击意见反馈会弹出意见反馈界面,用户可以通过此界面对本应用提出意见,并保存到相应的数据库中。点击设置会进入设置界面用户可以进行相应的操作。 此界面的代码也与网络音乐界面的代

30、码相同。 这三个界面内容显示在同一个UItableView上,其中我的音乐、网络音乐、更多功能是三个UILable,即使用来显示文字的。将UILable的属性设置为可以与用户交互后点击这三个UILable就可达到按钮的效果。将三个点击手势加到这三个UILable上,设置运行方法。更改右侧的UItableView上显示的内容。同时更改标志图片的位置,是应用显得更加美观。 (3)本地歌曲界面如图4-4所示 图4-4 本地歌曲界面 用户点击初始界面中的本地歌曲,就会弹出此界面。在这个界面中显示的是存储在本地的歌曲名称。点击任何一个歌曲名字就可进行该歌曲的播放。在下面的播放条中可以显示

31、歌曲的总时间,歌曲名称以及播放歌曲的时间按。同时触动向左滑动的手势,将会显示出歌曲的歌词。点击暂停/开始按钮可是歌曲暂停会继续。点击下一首按钮将播放在本地列表中的下一首歌曲。 此界面的相关代码如下: - (void)viewDidLoad { musicPlayBar=[[UIView alloc]initWithFrame:CGRectMake(0, 410, 320, 50)]; [faView addSubview:musicPlayBar]; imageOfMusic=[[UIImageView alloc]initWithFrame:CGRect

32、Make(2, 2, 46, 46)]; imageOfMusic.image=[UIImage imageNamed:currentMusic.smallImageOfMusic]; imageOfMusic.userInteractionEnabled=YES; [musicPlayBar addSubview:imageOfMusic]; smallProgressView=[[MyProgerss alloc]init]; smallProgressView.frame=CGRectMake(51, 42, 250, 2);

33、[musicPlayBar addSubview:smallProgressView]; totalTime=[[UILabel alloc]initWithFrame:CGRectMake(51, 23, 80, 20)]; totalTime.text=@"00:00"; [musicPlayBar addSubview:totalTime]; UIView *sepView=[[UIView alloc]initWithFrame:CGRectMake(90, 28, 1, 10)]; [musicPlayBar addSubvi

34、ew:sepView]; smallProgressView.curTime.frame=CGRectMake(100, 23, 80, 20); smallProgressView.curTime.text=@"00:00"; [musicPlayBar addSubview:smallProgressView.curTime]; startButton=[UIButton buttonWithType:UIButtonTypeCustom]; startButton.frame=CGRectMake(235, 10, 20, 20);

35、 [startButton setBackgroundImage:[UIImage imageNamed:@"playarticle_play.png"] forState:UIControlStateNormal]; [startButton addTarget:self action:@selector(startMusic) forControlEvents:UIControlEventTouchUpInside]; [musicPlayBar addSubview:startButton]; UIButton *nextButton=[UIButton

36、 buttonWithType:UIButtonTypeCustom]; nextButton.frame=CGRectMake(275, 10, 20, 20); [nextButton setBackgroundImage:[UIImage imageNamed:@"play_bar_next.png"] forState:UIControlStateNormal]; [nextButton addTarget:self action:@selector(nextMusic) forControlEvents:UIControlEventTouchUpInsi

37、de]; [musicPlayBar addSubview:nextButton]; musicArray=[[NSMutableArray alloc]initWithObjects:@"一眼万年",@"夜曲",@"最炫民族风",nil]; musicNameArray=[[NSArray alloc]initWithObjects:@"一眼万年",@"夜曲",@"最炫民族风",nil]; curMusicNumber=0; faHeadView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0,

38、320, 44)]; faHeadView.image=[UIImage imageNamed:@"navbar_bg@2x.png"]; faHeadView.userInteractionEnabled=YES; [faView addSubview:faHeadView]; [faHeadView release]; faRightButton=[UIButton buttonWithType:UIButtonTypeCustom]; [faRightButton setBackgroundImage:[UIImage imag

39、eNamed:@"nav-menu-icon@2x.png"] forState:UIControlStateNormal]; faRightButton.frame=CGRectMake(5, 5, 40, 30); [faRightButton addTarget:self action:@selector(changeView:) forControlEvents:UIControlEventTouchUpInside]; [faHeadView addSubview:faRightButton]; } 在本段代码中,对界面上添加了音乐播放条,并添加了用

40、来显示总时间以及播放时间的Lable,在播放条中添加开始(暂停)、下一首按钮。而显示歌曲名的UITableView在最初的UITableView的didSelectRowAtIndexPath方法中生成。相应的代码如下: if(indexPath.row==0) { UITableView *localMusicTableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 320, 386)]; localMusicTableView.delegate=self; localMusicTableVie

41、w.dataSource=self; [totalBackView addSubview:localMusicTableView]; whichTableview=4; [otherTableViewArray removeAllObjects]; [otherTableViewArray addObjectsFromArray:musicArray]; } 其中indexPath.row是判断点击了UITableView的哪一行,来进行下一步的操作 (4)我喜欢界面如图4-5所示 图4-5 我喜欢界面 用户在本地歌曲界面将某首歌曲设置为

42、我喜欢,则这首歌曲的名字会存储到我喜欢的界面中。 (5)最近播放界面如图4-6所示 图4-6 最近播放界面 用户点开此界面会显示出用户播放歌曲的历史记录,在不同时间播放了同一首歌曲目录会自动删除较早的记录保留最新的播放记录。 此界面的相应代码如下: else if(indexPath.row==5) { int j=[lastArray count]; faHeadLable.text=[NSString stringWithFormat:@"最近播放(%d)",j]; if(j==0) { UIImageView

43、 *im=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 386)]; im.image=[UIImage imageNamed:@"nillist_bg.png"]; [totalBackView addSubview:im]; [im release]; } else { UIScrollView *sc=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 3

44、20, 386)]; sc.contentSize=CGSizeMake(320, 386*3); for(int i=0;i

45、 [sc addSubview:la]; [la release]; } [totalBackView addSubview:sc]; } } } 在此段代码中包含了,在没有播放过音乐时显示那个界面,在播放了歌曲后显示那个界面。 (6)歌单界面如图4-7 排行榜界面如图4-8 歌手界面如图4-9 图4-7 歌单界面 图4-8 排行榜界面 图4-9 歌手界面 用

46、户在网络歌曲界面点击不同的内容会弹出不同的网络歌曲内容。这些内容都是从真正的网上的得到的。本人封装了一个下载类,可以将网上的信息下载下来显示到界面上。点击网络歌曲的不同内容弹出的信息都会出现在同一个界面上。也就是在点击网络歌曲的某一内容时,显示界面的UItableView内容必须为空,要实现点击不同内容显示不同信息就需要自己对每一个UItableView设置标志变量,来区分到底该显示哪个UItableView。 这三个界面都用到了下载类,从自己抓取的网络上提取数据,并显示在相应的界面中。重要代码如下: -(void)downLoadFromUrl:(NSURL *)url {

47、 myData=[[NSMutableData alloc]init]; NSURLRequest *request=[NSURLRequest requestWithURL:url]; myConnection=[[NSURLConnection alloc]initWithRequest:request delegate:self]; } -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [myData appendData:data]; }

48、 -(void)connection:(NSURLConnection *)connection didReceiveResponse :( NSURLResponse *)response { [myData setLength:0]; } -(void)connectionDidFinishLoading:(NSURLConnection *)connection { if([delegate respondsToSelector:@selector(downLoadComplited:)]) { [delegate downLoa

49、dComplited:self]; } } 这段代码是下载类中的主要代码,以前下载使用的是名为ASI的第三方库,后来自己改写成了用苹果自带的下载链接库来下载数据。将网上的数据下载成为NSData性的数据,并保存起来,在主视图控制器的代码中应用。调用下载数据的代码如下: -(void)downLoadComplited:(HttpDownLoad *)hd { [saveArray removeAllObjects]; NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:hd.myData o

50、ptions:NSJSONReadingMutableContainers error:nil]; NSArray *musicListArray=[[NSArray alloc]init]; if(whichTableview==3||whichTableview==5) { musicListArray=[dict objectForKey:@"song_list"]; for(NSDictionary *sunDict in musicListArray) { NSString

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服