基于iOS平台的视频播放器的设计与实现毕业设计论文

基于iOS平台的视频播放器的设计与实现毕业设计论文
基于iOS平台的视频播放器的设计与实现毕业设计论文

毕业论文(设计)

题目基于iOS平台的视频播放器的设计与实现

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:

指导教师签名:日期:

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日

导师签名:日期:年月日

注意事项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:引言(或绪论)、正文、结论

7)参考文献

8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。

4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用A4单面打印,论文50页以上的双面打印

4)图表应绘制于无格子的页面上

5)软件工程类课题应有程序清单,并提供电子文档

5.装订顺序

1)设计(论文)

2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它

摘要

[摘要]现在,我们已经越来越进入一个信息技术,科学技术都日益发达的时代,在日常生活中,各式各样的视频播放器应用越来越普及,因此开发一款简单方便的视频播放器是非常迎合用户需求的。本课题就是利用互联网技术的传播广泛性来设计实现的一款手机客户端的视频播放器应用。本课题是基于iOS平台下Objective-C开发语言以及C语言来实现,利用系统提供的类以及第三方类库实现数据加载、视频播放和数据处理,主要实现各类视频信息的展示与播放功能。课题所用的数据接口信息来自第三方供应商,数据来源稳定准确。通过测试,基本可以实现观看视频信息与搜索视频信息的功能,应用程序简单易操作,具有很好的用户体验度。

[关键词]手机客户端;iOS平台;视频播放器;

Abstract

Abstract:With the progress of science and technology, the rapid development of network technology, smart phones now in China's development trend in recent years, everyone is there for all to see, mention smartphones have to speak phone software, smart power to run from game entertainment to a variety of software for mobile office. Subject is the use of mobile Internet features provide people with better, more full of game strategy. This topic is to use the Object - the C programming language to implement the iOS software platform game box, by using the system class and the third-party libraries to realize data refresh and loading, image processing, video playback, and data analysis, user base is bigger, also have good development space and prospects. Data used in the project information from third party suppliers, ensure the accuracy of the data. Subjects in order to improve the user experience, USES the asynchronous thread processing network request and UI display separately, which makes the program more robust is reasonable.

目录

1概论 (1)

1.1课题研发的背景 (1)

1.2课题研究的目的和意义 (1)

1.3课题预期的目标 (1)

2相关技术的介绍 (2)

2.1软件环境 (2)

2.2核心技术介绍 (2)

2.2.1内存管理机制 (2)

2.2.2oc语言 (3)

3需求分析 (4)

3.1软件功能需求分析 (4)

3.1.1视频信息搜索 (4)

3.1.2视频信息展示 (4)

3.1.3视频信息播放 (5)

3.2软件可行性分析 (5)

4系统设计 (6)

4.1对象模型 (6)

4.2MVC模式 (7)

5系统实现 (9)

5.1开发所用的关键类 (9)

5.2应用程序编码实现 (12)

5.2.1应用程序工作流程 (12)

5.2.2应用程序管理类 (13)

5.2.3应用程序工具类 (14)

5.2.4应用程序功能实现 (15)

5.2.5应用程序界面实现 (16)

5.3应用程序模块实现 (18)

6系统测试 (23)

致谢 (24)

参考文献 (24)

基于iOS平台的视频播放器的设计与实现

1概论

现在,我们已经越来越进入一个信息技术,科学技术都日益发达的时代,视频应用已经日益普及。在我们生活中时时可见对于我们的日常生活来说必不可少的高科技产品,比如平板电脑,智能手机等等。几乎在所有的城市当中,每天都可以看到手持手机专心致志地欣赏视频的人们,这在我们工作生活中有着切身体会。

1.1课题研发的背景

随着如今智能手机的普及,视频应用不仅仅只是在电脑上有很多人使用,越来越多的手机视频应用出现在各种手机平台上。据大致统计,视频应用在丰富我们的日常生活占据重要组成部分,因此开发一款好用又简单的应用对于开发商来说是一件很具有市场前景的不错的选择。

1.2课题研究的目的和意义

本项目旨在给广大消费者群体提供一个更方便快捷的网络视频平台。提供对人们生活与娱乐的现状的了解,我们明白这个项目的可行性。通过这个项目,人们可以看到自己想要的视频信息,本项目可以通过分类来达到用户的需求,用户可以根据自己的喜好找到网络视频,通过网络和人们普遍使用的手机等通讯工具来度过自己的娱乐和休闲时间。

1.3课题预期的目标

本课题研究的主要内容是:利用Objective-C和一些第三方类去实现的一款应用软件,通过对网络进行数据解析、UI框架的搭建、第三方库SDWebImage的使用等实现此应用程序的视频信息的展示以及观看等基本的功能。具体的功能如下:

2相关技术的介绍

就本课题来说,我们所需要的软件支持和技术支持是我们保证开发进度与完成力度的前提。因此对于本课题中所需要的开发技术说明分为如下两部分:软件环境、核心技术简介。

2.1软件环境

(1) 硬件环境

操作系统:Mac OS X

内存容量:8GB

硬盘容量:500GB

(2)测试环境

模拟器测试配置:iOS iPhone 5s

iOS版本:iOS 7.1

(3)开发环境

1.开发该软件使用的开发工具为Xcode6.0版本。

2. 开发该软件使用的开发语言为Objective-C,C语言。

2.2核心技术介绍

本课题是基于iOS技术利用OC开发语言实现的,使用Xcode编程软件进行开发的,因此我们在进行开发之前需要了解OC中内存管理机制、iOS发展历程、OC语言以及开发工具Xcode等等。

2.2.1内存管理机制

内存管理是程序设计中常用的资源管理的一部分[8]。每个计算机系统可供程序使用的资源都是有限的,这些资源包括内存、打开文件数量以

及网络连接等。iOS系统为每个应用程分配30MB的内存,超过20MB会收到内存警告,如果超过30MB,系统将会终止你的应用程序,也就是我们熟悉的闪退[2]。因此我们需要时时的对应用程序进行内存管理。

在Objective-C中,对象不断地被其他对象创建、使用和销毁,为了保证程序不产生额外的内存开销,当对象不再需要以后,应当被立即销毁,防止内存泄露[8]。Objective-C中有一套很完善的内存管理机制,我简单地将它归纳为以下几条:

1.对你自己拥有的对象负责。你只能释放你拥有的对象。

2.凡是你通过retain,alloc,copy等手段获得了所有权的对象,都必须在你不再使用它的时候,由你来调用release,autorelease等手段来释放对它的所有权。

3.在一定的代码段内,对同一个对象所作的copy,alloc和retain 的操作次数应当与release和autorelease操作次数相同[12]。

4.可以在类的dealloc方法中释放你所占有的实例变量。

2.2.2oc语言

Objective-C是一门面向对象的编程语言[7]。Objective-C语言具有三大特征:封装,继承和多态[3]。

封装:隐藏内部实现,稳定外部接口。

继承:子类可以直接复用父类中的成员。

多态:不同对象对同一消息的不同响应。

3需求分析

3.1软件功能需求分析

在开发进行之前,我们需要了解我们开发的项目需要实现的功能模块。就本课题来说,视频播放类的APP,最重要的就是视频信息的展示、搜索与播放。下面就单个模块对整个系统实现进行分析。

3.1.1视频信息搜索

视频信息搜索是视频播放器的功能之一,它主要使用了官方提供的一个系统类,并通过对网址url进行拼接参数实现搜索结果,进行界面展示。

用户可以在搜索栏上输入自己想要查询的视频信息名称,应用程序把用户输入的字符作为参数通过拼接网址传给服务器,服务器会返回一个json类型的数据字典,这些数据是通过NSJSON解析处理后,用一个collectionView集合视图来显示返回来的数据并展示在UI界面之上的。

3.1.2视频信息展示

视频信息展示是视频播放器的主要功能,它主要是根据网络接口数据分析解析并通过UI界面布局之后进行界面展示。

程序启动之后,展示在界面上的就是推荐界面的视频信息,用户可以通过点击进入视频模块分区界面。并且根据自己喜好选择自己喜欢的视频信息,进行播放。信息展示主要是通过接口请求到数据进行JSON解析,并将数据保存在字典中,启动程序后,就会进行网络数据请求,回传到的数据展示在UI界面就形成了我们看到的视频信息。

3.1.3视频信息播放

该视频应用是在webView上面进行在线播放的APP。

用户点击视频信息名称,应用程序把用户点击事件获得的参数拼接的网址传给服务器,服务器直接访问对应的播放来源的网站进行在线播放。在程序中每个视频信息都可以通过点击事件来响应视频播放的方法。视频播放主要是通过接口数据得到网址信息,并且选择播放来源时拼接不同的参数来实现在不同网站上播放同一个视频信息的功能。

3.2软件可行性分析

当前社会是一个信息化的社会,信息的传播无处不在,而且苹果产品的普及也给该系统提供了很好的推广前景。就消费者而言,苹果手机已成为各种消费者群体争先追捧的智能产品。它以及华丽的外形,超高的用户体验度一直强势地占领市场。以此,就社会性而言,该视频应用是非常合时宜的。

此系统硬件、软件要求不高,目前市场上的一般计算机硬件资源(例如Mac mini)均能满足系统开发要求,其中开发工具为Xcode。系统技术采用iOS开发技术,OC开发语言,扩展性强。以上技术足以完成本系统的开发与设计。

本系统的开发完全可以利用现有硬件条件,不需增加新的硬件设备。开发所涉及的软件使用的均为免费版本,开发后的应用免费提供给用户,让用户能轻松享受娱乐时光。系统开发基本无需其他开销,费用支出可忽略不计,所以本软件具有极高的经济可行性。

4系统设计

在完成了对课题的所需技术介绍以及需求分析之后,我们就要对系统实现所需的各种具体类与方法进行设计。在iOS开发过程中,我们一般使用MVC框架对我们的代码模块进行管理,保证类与类之间不冲突,方法与方法之间可复用,代码不冗余。对于本课题而言,我们主要通过对使用对象模型的分析设计,MVC模式的设计来完成系统的设计纲要。

4.1对象模型

本课题设计的视频播放器应用程序主要由四大对象UIApplicationMain,UIApplicationDelegate,UIWindow,UIViewController组成,具体的介绍及关系图如图4-1所示:(1)UIApplicationMain

在main.m的main函数中执行了UIApplicationMain这个方法,这是iOS程序的入口点[9]。

(2)UIApplicationDelegate

在开发过程中,UIApplication是一个非常重要的全局对象。但在实际编程中我们并不直接和UIApplication对象打交道,而是和其代理打交道,它的代理必须遵循UIApplicationDelegate协议,代理提供了相关的生命周期方法来处理应用程序的系统事件[9]。

(3)UIWindow

UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow,但可以手动创建多个UIWindow[10]。UIWindow的主要作用是提供一个区域来显示视图;将事件分发给视图控制器;与UIViewController协调工作,方便完成设备方向旋转的支持。

(4)UIViewController

UIViewController属于MVC模型中的C(Controller),说的具体点是它是一个视图控制器,管理着一个视图(UIView)[10]。

图4-1 四大对象关系图

4.2MVC模式

系统中主要使用MVC模式,MVC模式是Apple iOS开发需要遵循的设计模式[11]。它把一个页面分为三部分。M代表Model,也就是模型,通常是一些模型类(例如LDLModel类),用于存储数据。View代表视图,用于显示数据。C代表控制器(Controller),用于控制M和V的同步和协调。当数据改变的时候,要让视图显示更新的数据。一个应用程序通常是多个这样的页面组成。它的优点是:

(1)低耦合性。

(2)重用性高。

(3)可维护性好。

在本系统中就应用了MVC设计模式对代码进行封装和分离,具体MVC 结构模型图如图4-2所示:

图4-2 MVC模型关系图

5系统实现

通过对系统实现需求的设计,我们大致了解我们开发所用的类、框架与模型。就进入了真正的系统实现模块,首先我们要了解在开发过程中我们所用到的类与类之间的关系,方便开发。然后根据我们需要实现的功能进行代码的封装,从而实现代码的复用与模块化。

5.1开发所用的关键类

UI即User Interface(用户界面)的简称。UI设计是指对软件的人机交互、操作逻辑、界面美观的完整设计。UI处于iOS四层结构的最上层(Cocoa Touch),并且放置在UIKit框架下,它跟用户的操作息息相关,所以包含的控件也特别多[12]。子类与父类之间继承关系如图5-1-1所示:

图5-1-1 子类与父类之间继承图

在本课题的程序实现里面主要用到的控件大致如下:

(1)显示类

①UILabel 展示信息,在应用程序中主要用于展示视频信息等等。

②UIButton 按钮,在应用程序中只要用于相应用户点击时间,比如点击“更多”按钮进入详情界面,点击“历史记录”按钮进入观看历史记录界面。

③UIAlertView 警告视图,在应用程序中主要用于展示删除的弹窗警告,给用户更好的体验,选择权在用户手中。

④UIView 视图,在应用程序中主要用于展示视频信息,并在视图上进行相应的操作。

⑤UINavigationBar 导航条,在界面上展示导航条的位置,方便我们根据导航控制器来控制界面跳转及操作。

⑥UITableView 表视图,在应用程序中主要在单元格上展示视频信息,设置信息等等。

⑦UICollectionView 集合视图,在应用程序的推荐界面和分类界面都是集合视图来展示分区信息。

⑧UIImageView 图片视图,在应用程序中有图片的展示信息都是加载在UIImageView视图之上的。

⑨UIScrollView 滚动视图,在应用程序主界面轮播图是使用UIScrollView和UIPageControl控件实现的。

⑩UIWebView 网页视图,在应用程序中视频播放界面是UIWebView 加载实现的。

(2)功能类使用

①NSDate 处理日期和时间,在应用程序中显示时间和刷新时间。

②NSTimer 定时器,在应用程序中添加动画效果开始时间,添加定时器。

③NSURL 网络路径,在应用程序中封装网络路径。

④NSURLRequest 网络请求,在应用程序中设置一些网络的请求信息。

⑤NSError 在应用程序中使用到是用来接收网络请求中的错误信息。

⑥NSData 数据,在应用程序中把一些信息写入到文件里或发送到网络上,我们需要把这些数据转换下,变成纯粹的0、1字符流使用到NSData 类。

⑦NSNotification 通知,在应用程序中用于界面传递信息,在播放界面和历史记录界面有使用到通知的发送和接收。

⑧NSJSONSerialization 数据解析,在应用程序中主要用于解析网络数据,主要分为XML和JSON解析,在应用程序中主要用到JSON解析数据。

⑨NSOperationQueue 队列,在应用程序中主要用于对对象进行队列操作。

5.2应用程序编码实现

应用程序是我们通过编码实现UI界面展示,响应并处理用户事件的最重要的一部分,几乎所有的功能实现都是基于代码的书写来完成的。下面就应用程序的工作流程、编码实现进行介绍。

5.2.1应用程序工作流程

应用程序是基于iOS技术开发实现的,根据需求,我们需要设计包含主界面以及很多的子类界面。主界面有:推荐界面、分类界面、搜索界面、设置界面。子类界面有分类详情界面、剧集选择界面、播放界面、历史记录界面等等。主界面之间实现用户对视频信息的选择与展示,并响应用户点击事件。例如:用户点击每个集合视图的item时可以跳转到模块分类详情界面;点击模块分类详情界面会跳转到视频信息详情界面,并选择剧集实现播放视频的功能。主页面主要负责整个应用程序的视频信息,通过添加手势来实现与下级界面的交互,它的信息播放以及视频信息详情展示都由下级页面来完成。整个界面看起来美观简洁,使得用户使用起来一目了然。而且通过界面代码实现的复用,很好的降低代码冗余,使得程序运行更加流畅,占据内存空间更小。

根据上面的详细的介绍,我们大概有所了解客户端的整的整个流程。客户端的流程图如4-2-1图所示:

相关主题
相关文档
最新文档