完整版iOS音乐播放器毕业设计.docx

上传人:b****2 文档编号:23484135 上传时间:2023-05-17 格式:DOCX 页数:42 大小:624.41KB
下载 相关 举报
完整版iOS音乐播放器毕业设计.docx_第1页
第1页 / 共42页
完整版iOS音乐播放器毕业设计.docx_第2页
第2页 / 共42页
完整版iOS音乐播放器毕业设计.docx_第3页
第3页 / 共42页
完整版iOS音乐播放器毕业设计.docx_第4页
第4页 / 共42页
完整版iOS音乐播放器毕业设计.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

完整版iOS音乐播放器毕业设计.docx

《完整版iOS音乐播放器毕业设计.docx》由会员分享,可在线阅读,更多相关《完整版iOS音乐播放器毕业设计.docx(42页珍藏版)》请在冰豆网上搜索。

完整版iOS音乐播放器毕业设计.docx

完整版iOS音乐播放器毕业设计

以下文档格式全部为word格式,下载后您可以任意修改编辑。

1引言

1.1选题背景

随着智能手机的大众化,越来越多的人应用智能手机。

相对的对手机软件的需求也就越来越多。

当今时代手机不再只是用来打电话、发短信的工具,反而对手机的娱乐功能要求越来越高[1]。

手机的一个重要的功能就是听音乐,一款好的手机音乐播放器可以更好的体现智能手机的强大。

目前中国音乐播放器行业已经具备了相当的规模,并在国际市场上已有一定的竞争力。

苹果手机作为当今中国智能手机市场上不可或缺的一个品牌,基于iOS的手机软件需求量也就相应的越来越强。

市场上的音乐播放器品牌繁多,定位不一,基本满足了各层次消费者的需求,例如:

酷我音乐、酷狗音乐、XX音乐、QQ音乐等等这些大家所熟知的音乐播放器已经在苹果软件中占据了一定的地位。

智能手机的应用使现代人的生活更加的方便。

伴随着苹果手机进入中国市场,相应的iOS技术逐渐流行起来。

而对于开发苹果应用的语言——Object-C,也成为当今社会最流行的开发语言,并且保持着强劲的上升趋势,隐隐有超过C语言的现象。

对于其他的开发语言,例如java、javascripe,Object-C以其强大的优势遥遥领先于这些其他的编程语言。

本人根据当前的形式,决定引用这种这种技术来开发手机应用。

1.2设计目的及意义

听音乐已经成为当今社会,人们必不可少的一项娱乐活动。

根据调查所得信息,本人发现最近智能手机用户对较大的音乐播放器应用的喜爱度明显下滑,而相对的那些小巧的音乐播放器反而被越来越多的用户下载使用。

苹果系统的软件具有的特点就是美观、简洁、易操作。

根据这些信息,设计一款小巧的基于iOS的音乐播放器会很容易得到用户的青睐。

同时本人从去年开始接触iOS,在学习了几个月后,对iOS开发有了一些理解,所以对于这次毕业设计,我就选择了基于iOS系统开发一款产品。

希望通过这次毕业设计来进一步巩固自己的iOS开发水平。

使自己在以后的社会竞争中更加具有优势。

1.3设计思想和目标

设计思想:

自己的这款音乐播放器设计的过程是按照一般的应用开发流程进行的。

自己首先调查了当今社会,人们对音乐播放器的需求,从中得出现阶段手机用户需要的是小巧、方便的音乐播放器。

从而决定自己开发一款小巧的音乐播放器。

在有了用户的需求后,本人开始开发属于自己的音乐播放器。

在真正设计音乐播放器的过程中,本人先决定了音乐播放器的整体框架结构,应用的图片出处等等这些开发必需的部分。

于是自己借鉴酷狗音乐的框架,开发一款精简的酷狗音乐播放器。

在决定了整体框架后,就是真正的开发了。

自己将酷狗音乐中与播放无关的部分删除,只保留他的播放功能,歌词显示功能音乐下载功能等等。

下载功能的实现本人决定针对这款音乐播放器设计出一个可供下载的网站以及服务器。

设计目标:

虽说这款应用自己不打算上线,但自己依旧打算使其完美。

拥有播放器的一般功能,可以根据不同的歌曲显示不同的歌词,进度条根据时间显示播放进度,根据不同的音乐信息进行选择,根据搜索到的歌曲信息,下载自己喜爱的歌曲。

在完成这些功能的过程中来巩固自己学到的知识

2应用分析

2.1可行性分析

可行性分析也可称为可行性研究,是在网上调查的基础上并辅助其他的信息渠道,针对基于iOS的音乐播放器的开发是否具备必要性和可能性。

对新的音乐播放器的开发从技术、操作、经济等不同方面进行分析研究,来保证投资的失误,保证音乐播放器的开发成功。

就我们学的的知识知道可行性分析可以在最短的时间内分析出这款基于iOS的音乐播放器是否可以达到预定的效果。

(1)经济可行性分析:

这款基于iOS的音乐播放器的开发是通过苹果系统的Xcode来进行的。

虽然本人不可能购买苹果笔记本来开发这款项目,但现阶段人们可以在不同的电脑上运行苹果系统。

那就是人们所说的黑苹果,通过一定的技术使非苹果笔记本也可运行苹果系统。

开发音乐播放器所需的图片,自己可以不通过专业人士来绘制。

自己通过破解现有Appstore上的在线应用,来获取自己想要的资源。

并且这个过程很是简单,不存在浪费人力物力的现象。

所以得出开发一款基于iOS的音乐播放器在经济方面是可行的。

(2)技术可行性分析:

开发基于iOS的音乐播放器运用到的技术是Object-C,以及一些iOS开发的UI设计,某些类库的应用等等。

就技术方面而言,自己学习iOS技术已经有四五个月的基础了,相对于开发一款音乐播放器而言自己的技术是完全可以胜任的。

而自己在黑苹果上装的Xcode完全可以胜任这次开发的需求。

从而分析得出开发这款音乐播放器在技术方面是可行的。

(3)社会可行性分析:

开发这款音乐播放器,本人不是为了盈利的目的不会损害到任何人的利益。

这款音乐播放器虽有一部分按照酷狗音乐来完成,但自己不会发布出去,所以不会影响到酷狗公司的利益。

本人开发这款音乐播放器符合国家的方针政策,不影响任何组织的利益,没有宗教方面的宣传同时不会影响社会稳定。

所以可以得出本人开发基于iOS的音乐播放器在社会方面是可行的。

所以,综上所述本人的基于iOS的音乐播放器的开发是可行的。

2.2需求分析

需求分析指的是在建立一个新的应用的时,就这个新的应用的目的、范围、定义及功能这些方面所要做的工作。

需求分析是完成一个应用必不可少的部分。

在进行一款项目开发的过程中,开发者必须确定客户的需求,在确定了客户需求后才能进行应用的开发。

根据当前社会形势,苹果系统在中国逐渐流行,单单是iOS方面的音乐播放器行业也已经具备了相当的规模[3]。

市场上的音乐播放器品牌繁多,定位不一,基本满足了各层次消费者的需求。

最新的调查显示比较大的音乐播放器市场,并不是很乐观。

而外形新颖、小巧轻便灵活的迷你音乐播放器却很受年轻人的青睐和欢迎。

虽然国内的较大的音乐播放器销售状况不是很好,但是迷你音乐播放器却是个例外,市场发展前景不容小觑。

基于此,设计音乐播放器重点还是在于美观的外形和其吸引人的性能,小体积却可以实现相对更大的功率,新型的迷你音乐播放器要有其他的附加功能,可以更好的吸引用户。

2.3系统开发工具介绍

2.3.1Objective-C技术

Object-C是扩充C的面向对象编程语言。

它主要使用于MacOSX和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。

Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。

1980年代初布莱德·确斯在其公司Stepstone发明Objective-C。

他对软件设计和编程里的真实可用度问题十分关心,目前主要是编写iOS操作系统应用程序的利器。

近几年Objective-C排名大幅提升,它的流行当归功于iphone的成功,因为Objective-C一直被用于编写iPhone应用程序[4]。

Objective-C是非常实际的语言。

它是一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。

ObjC写成的程序通常不会比其原始码大很多。

而其函式库亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。

2.3.2Xcode开发工具

Xcode是开发人员建立基于iOS的应用最快捷的方式。

Xcode是苹果公司向开发人员提供的集成开发环境。

其运行于苹果公司的Mac操作系统下。

不管你用C、C++、Objective-C或Java编写程序,在AppleScript里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现Xcode编译速度极快,每次操作都很快速和轻松[5]。

苹果公司为用户提供了全套免费的Cocoa程序开发工具。

MacOSX一起发行,在苹果公司官方的网站下载[6]。

2.3.3SQLite简介

SQLite是一款轻型的数据库[7]。

是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。

它能够支持WindowsLinuxUnix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

SQLite包含在一个相对小的C库中。

它是D.RichardHipp建立的公有领域项目[8]。

不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。

所以主要的通信协议是在编程语言内的直接API调用。

这在消耗总量、延迟时间和整体简单性上有积极的作用。

整个数据库都在宿主主机上存储在一个单一的文件中。

它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。

2.3.4VisualStudio简介

VisualStudio是微软公司推出的开发环境。

是目前最流行的Windows平台应用程序开发环境。

VisualStudio2010同时带来了NETFramework4.0、MicrosoftVisualStudio2010CTP,并且支持开发面向Windows7的应用程序。

除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库。

VisualStudio中的编程语言运行于.NETFramework中。

Framework有助于基于Web和Windows的应用程序开发,允许来自不同语言的对象共同运行,并标准化了语言引用数据和对象的方式。

VisualStudio.NET是微软公司推出的程序开发工作。

和以前的VisualStudio相比,VisualStudio.NET是一个质的飞跃。

C#是VisualStudio.NET的重要组成部分。

在VisualStudio.NET平台上使用C#语言可以开发出各种各样的应用程序[9]。

在.NET平台中,C#语言是一种脚本语言,即简化的C#语言。

C#语言已经通过国际标准组织的认证,成为一种国际标准的计算机语言。

.NETFramework是用于生成、部署和运行应用程序的多语言环境。

.NETFramework通过公共语言运行库、.NET框架类库、Microsoft中间语言、JIT即时编译等机制生成应用程序。

3应用总体设计

在经过可行性分析后本章将主要介绍应用的总体设计。

应用所实现的功能的强弱是衡量一款应用的标准。

通过对音乐播放器的全面分析并结合调研的情况,得出了这款音乐播放器的结构图与功能模块图。

3.1音乐播放器的功能模块概况

根据需求分析的结果得到音乐播放器的基本模块包括以下几个模块

(1)我的音乐模块:

其中主要有本地音乐、我喜欢的音乐、最近播放的音乐的几个部分组成。

(2)网络音乐模块:

该模块主要包括最新、歌单、排行榜、歌手等几部分构成。

(3)更多更能模块:

该模块主要包括换肤、意见反馈、设置及部分构成。

根据音乐播放器的功能分析可以画出音乐播放器的功能模块图,如图1所示

图1音乐播放器功能模块图

3.2音乐播放器各功能模块介绍

各功能模块介绍如下:

(1)我的音乐模块

用户可以通过此模块来播放本地的音乐。

具体播放功能包括音乐的演唱、歌词的显示、播放进度的显示、歌曲的暂停、播放下一首等功能。

用户可以通过本地音乐列表将歌曲存储成我喜欢的音乐,同时在播放的过程中会将播放过的歌曲名存储起来,对用户进行提示。

(2)网络歌曲模块

用户可以通过本模块进行选择网络上的音乐信息,同时用户可以将网络上的歌曲下载到本地音乐中进行播放,用户根据不同的歌曲信息进行歌曲搜索,方便了用户的使用。

(3)更多功能模块

用户可以通过此模块对本款音乐播放器进行换肤操作,更改本款音乐的皮肤。

用户可以通过意见反馈页面来提出自己的意见。

相应的设置模块,用户可以进行一些对本应用的操作,使本应用更加适合用户需求。

4音乐播放器详细设计

4.1音乐播放器界面设计

(1)我的音乐界面如图4-1所示

图4-1我的音乐

用户可以通过此界面选择不同的信息。

点击本地音乐可以进入音乐播放界面,点击我喜欢可以进入我喜欢界面,其中的歌曲是自己从本地音乐界面中选取出来的,而最近播放界面显示用户最近播放的歌曲。

此界面部分相关代码如下:

-(void)viewDidLoad

{

mainTableViewArray=[[NSMutableArrayalloc]initWithObjects:

@"本地音乐",@"iPod音乐",@"我喜欢",@"本地收藏",@"网络收藏",@"最近播放",nil];

UIView*vi=[[UIViewalloc]initWithFrame:

CGRectMake(0,0,280,480)];

[self.viewaddSubview:

vi];

[visetBackgroundColor:

[UIColorcolorWithRed:

58255.0green:

58255.0blue:

58255.0alpha:

1]];

lableOne=[[UILabelalloc]initWithFrame:

CGRectMake(11,72,25,120)];

lableOne.text=@"我的音乐";

lableOne.userInteractionEnabled=YES;

lableOne.:

200255.0blue:

200255.0alpha:

1];

lableTwo.userInteractionEnabled=YES;

[viaddSubview:

lableTwo];

lableThree=[[UILabelalloc]initWithFrame:

CGRectMake(11,280+52,25,120)];

lableThree.text=@"更多功能";

lableThree.textColor=[UIColorcolorWithRed:

200255.0green:

200255.0blue:

200255.0alpha:

1];

[viaddSubview:

lableThree];

UITapGestureRecognizer*tapGestureOne=[[UITapGestureRecognizeralloc]initWithTarget:

selfaction:

@selector(choseIt:

)];

[lableOneaddGestureRecognizer:

tapGestureOne];

[tapGestureOnerelease];

}

此段代码得到具体含义是,加载初始界面并添加相关的手势来控制mainTableViewArray显示的内容。

随后在加载tableVIew的过程中运行UITableview的方法即:

cellForRowAtIndexPath:

和didSelectRowAtIndexPath:

其中cellForRowAtIndexPath是控制每一个cell所显示的内容,而didSelectRowAtIndexPath则是在这些cell被点中时判断哪个被点中了,要运行什么方法。

(2)网络音乐界面如图4-2所示

图4-2网络音乐界面

用户可以从此界面中选择网络相关的音乐。

点击歌单会弹出歌单界面,其中是各种流行的单曲。

点击排行榜则会弹出当前的流行歌曲排行榜,同样点击歌手则会弹出歌手界面。

此界面的代码是只要将最初的mainTableViewArray的显示内容改变了,并通过相应的手势来达到内容的改变。

手势方法相关的代码如下:

-(void)choseIt:

(UITapGestureRecognizer*)tap

{

[mainTableViewArrayremoveAllObjects];

CGPointpoint=[taplocationInView:

self.view];

if(CGRectContainsPoint(lableOne.frame,point))

{

flag=0;

[arrayremoveAllObjects];

mainTableViewArray=[[NSMutableArrayalloc]initWithObjects:

@"本地音乐",@"iPod音乐",@"我喜欢",@"本地收藏",@"网络收藏",@"最近播放",nil];

lableTwo.=[UIButtonbuttonWithType:

UIButtonTypeCustom];

startButton.frame=CGRectMake(235,10,20,20);

[startButtonsetBackgroundImage:

[UIImageimageNamed:

@"playarticle_play.png"]forState:

UIControlStateNormal];

[startButtonaddTarget:

selfaction:

@selector(startMusic)forControlEvents:

UIControlEventTouchUpInside];

[musicPlayBaraddSubview:

startButton];

UIButton*nextButton=[UIButtonbuttonWithType:

UIButtonTypeCustom];

nextButton.frame=CGRectMake(275,10,20,20);

[nextButtonsetBackgroundImage:

[UIImageimageNamed:

@"play_bar_next.png"]forState:

UIControlStateNormal];

[nextButtonaddTarget:

selfaction:

@selector(nextMusic)forControlEvents:

UIControlEventTouchUpInside];

[musicPlayBaraddSubview:

nextButton];

musicArray=[[NSMutableArrayalloc]initWithObjects:

@"一眼万年",@"夜曲",@"最炫民族风",nil];

musicNameArray=[[NSArrayalloc]initWithObjects:

@"一眼万年",@"夜曲",@"最炫民族风",nil];

curMusicNumber=0;

faHeadView=[[UIImageViewalloc]initWithFrame:

CGRectMake(0,0,320,44)];

faHeadView.image=[UIImageimageNamed:

@""];

faHeadView.userInteractionEnabled=YES;

[faViewaddSubview:

faHeadView];

[faHeadViewrelease];

faRightButton=[UIButtonbuttonWithType:

UIButtonTypeCustom];

[faRightButtonsetBackgroundImage:

[UIImageimageNamed:

@"nav-menu-"]forState:

UIControlStateNormal];

faRightButton.frame=CGRectMake(5,5,40,30);

[faRightButtonaddTarget:

selfaction:

@selector(changeView:

)forControlEvents:

UIControlEventTouchUpInside];

[faHeadViewaddSubview:

faRightButton];

}

在本段代码中,对界面上添加了音乐播放条,并添加了用来显示总时间以及播放时间的Lable,在播放条中添加开始(暂停)、下一首按钮。

而显示歌曲名的UITableView在最初的UITableView的didSelectRowAtIndexPath方法中生成。

相应的代码如下:

if(indexPath.row==0)

{

UITableView*localMusicTableView=[[UITableViewalloc]initWithFrame:

CGRectMake(0,0,320,386)];

localMusicTableView.delegate=self;

localMusicTableView.dataSource=self;

[totalBackViewaddSubview:

localMusicTableView];

whichTableview=4;

[otherTableViewArrayremoveAllObjects];

[otherTableViewArrayaddObjectsFromArray:

musicArray];

}

其中indexPath.row是判断点击了UITableView的哪一行,来进行下一步的操作

(4)我喜欢界面如图4-5所示

图4-5我喜欢界面

用户在本地歌曲界面将某首歌曲设置为我喜欢,则这首歌曲的名字会存储到我喜欢的界面中。

(5)最近播放界面如图4-6所示

图4-6最近播放界面

用户点开此界面会显示出用户播放歌曲的历史记录,在不同时间播放了同一首歌曲目录会自动删除较早的记录保留最新的播放记录。

此界面的相应代码如下:

elseif(indexPath.row==5)

{

intj=[lastArraycount];

faHeadLable.text=[NSStringstringWithFormat:

@"最近播放(%d)",j];

if(j==0)

{

UIImageView*im=[[UIImageViewalloc]initWithFrame:

CGRectMake(0,0,320,386)];

im.image=[UIImageimageNamed:

@"nillist_bg.png"];

[totalBackViewaddSubview:

im];

[imrelease];

}

else

{

UIScrollView*sc=[[UIScrollViewalloc]initWithFrame:

CGRectMake(0,0,320,386)];

sc.contentSize=CGSizeMake(320,386*3);

for(inti=0;i

{

UILabel*la=[[UILabelalloc]initWithFrame:

CGRectMake(0,i*30,320,30)];

la.text=[lastArrayobjectAtIndex:

i];

la.font=[UIFontsystemFontOfSize:

14];

[scaddSubview:

la];

[larelease];

}

[totalBackViewaddSubview:

sc];

}

}

}

在此段代码中包含了,在没有播放过音乐时显示那个界面,在播放了歌曲后显示那个界面。

(6)歌单界面如图4

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

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

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