1、本科毕业论文(20 届)iOS 下视频点播 App 设计与实现所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期摘 要苹果 iOS 是苹果开发的手持设备操作系统。苹果公司最早于 2007 年 1 月 9 日的Macworld 大会上发布这个系统,最初设计给 iPhone 使用,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等苹果产品上。近年来,随着 iphone 和广泛应用,使许多企业发现,手机业务价值,促使越来越多的人开始学习开发手机。苹果手机软件基于 Object_C 编程语言编程 Xcode 的环境下发展。手机软件分为许多类型,包括视频类手机软件有很高的
2、地位在手机软件的发展。本文基于 iOS 开发平台设计并且实现了一款手机视频 App,展示如何通过利用Object_C 的工具函数实现对视频的各种处理。论述了视频的播放,异步下载以及断点播放。关键字:视频播放 Dota Object_C AbstractApple iOS is the development of handheld devices operating system.Apple as early as January 9,2007 the Macworld conference this system,originally designed for use in iPhone,s
3、ubsequently applied to the iPod touch,Apple,and Apple products such as Apple TV.In recent years, with the iphone and it is widely used, make many businesses found that mobile phone on business value, prompting more and more people begin to learn the development on mobile phones. Apple mobile phone s
4、oftware based on Object_C programming language under the environment of Xcode development programming. Mobile phone software is divided into many types, including video class mobile phone software have the very high status in the development of mobile phone software.This article is based on the iOS(
5、Internetworking Operation System) is designed and implemented a mobile video App, shows how to use Object_C tool function on video processing. Discusses the video playback, asynchronous download and breakpoint.KeywordsVideo Display Dota Object_C目录第一章 绪论 .51.1 iOS系统概述 .51.2 iOS系统的构架 .51.2.1 Cocoa Tou
6、ch层 .51.2.2 Media 层 .61.2.3 Core Services层 .61.2.4 Core OS层 .61.3 Object_C的介绍 .6第二章 总体设计 .82.1 系统各个功能模块总体设计 .82.2 iOS的 View的生命周期 .9第三章 详细设计 .113.1 基础类设计 .113.2 项目所需系统类库 .133.3 第三方 SDK.133.4 App运行首页面 .143.4.1 视频解说 .143.4.2 视频解说详情页面 .163.4.3 视频播放 .173.5 视频缓存 .183.6 直播 .203.7 Dota2 英雄介绍和物品介绍 .213.7.1 D
7、ota2 英雄介绍 .213.7.2 Dota2 物品的介绍 .243.8 设置 .263.9系统测试 .283.9.1 功能模块测试 .283.9.2 功能整体测试 .28第四章 结论和致谢 .29第 1章 绪论1.1 iOS系统概述iOS 操作系统是 iPhont、ipod touch 以及 iPad 设备的核心。构架 iOS 平台的知识与 Mac OS X 系统同出一辙,iOS 平台的许多开发工具和开发技术也源自 Mac OS X,都是以 UNIX 为基础。但开发者无需具备 Mac OS X 的开发经验就可以编写 iOS 的应用程序。iPhone 软件开发包(SDK)为着手创建 iOS
8、应用程序提供所需要的一切。1.2 iOS系统的构架iOS 架构和 Mac OS 的基础架构相似。站在高级层次来看,iOS 扮演底层硬件和应用程序的中介。创建的应用程序不能直接访问硬件,而需要和系统接口进行交互。系统接口转而又去和适当的驱动打交道。这样的抽象可以防止应用程序改变底层硬件。iOS 实现可以看作是多个层的集合,底层为所有应用程序提供基础服务,高层则包含一些复杂巧妙的服务和技术。图 1-1 iOS的层1.2.1 Cocoa Touch层Cocoa Touch 层提供了基本的系统行为支持,而且将你的工作量降到最低,当你想要实现更为复杂的行为和界面时,才考虑向下层探寻技术支持。UIKit
9、框架:UIKit 提供了一些程序运行所必须的关键对象,使得 App 能够捕捉用户输入和在屏幕上显示内容MapKit 框架:iOS3.0 引入该框架,该框架提供一个可被嵌入到应用程序的地图界面,该界面包含一个可以滚动的地图视图Address Book UI 框架:iOS3.0 引入该框架,可以利用该框架撰写电子邮件,并将其放入到用户的发件箱排队等候发送Message UI 框架:显示创建或者编辑联系人的标准系统界面1.2.2 Media 层包含图形、音频、视频等技术。Quartz Core 框架:包含 Core Animation 是高级动画制作和混合技术,它使用经过优化的渲染路径实现复杂的动画
10、和视觉效果Media Player 框架:应用程序播放视频和音频内容AV Foundation 框架:该框架包含的 Object_C 类可用于播放音频内容Core Graphics 框架:(CoreGraphics.framework)包含 Quartz 2D 绘图 API 接口。该框架基于 C 接口,提供绘图功能1.2.3 Core Services层应用程序提供基础系统服务。可能应用程序并不直接使用这些服务。但它们是系统很多部分懒以建构的基础。Foundation 框架:为 Core Foundation 框架的许多功能提供 Object_C 封装Core Foundation 框架:是一
11、组 C 语言接口,它们为 iOS 应用程序提供基本数据管理和服务功能Core Location 框架:可用于定位某个设备经纬度其他框架:CFNetWork 框架、Core Data 框架、Core Media 框架、Core Telephony框架、Event Kit 框架、 Mobile Core Services 框架、Quick Look 框架、Store Kit 框架、System Configuration 框架1.2.4 Core OS层Core 层的底层功能是很多其他技术的构建基础。通常情况下,这些功能不会直接应用与应用程序,而是应用与其他框架。但是,在直接处理安全事务或和某个外
12、设通讯的时候,则必须要应用到该层框架Accelerate 框架:iOS4.0 引入了 Accelerate 框架,该框架的接口可用于执行数字、大数字以及 DSP 算法External Accessory 框架:iOS3.0 引入了 External Accessory 框架,通过它来支持 iOS 设备与绑定附件通信。附件可以通过一个 30 针的基座接口和设备连接,也可以通过蓝牙连接Security 框架:iOS 系统不但提供内建的安全功能,还提供 Security 框架用于保证应用程序所管理之数据的安全。该框架提供的接口可用于管理证书、公钥、私钥以及信任策略。它支持生成加密的安全伪随机数。同时
13、,它也支持对证书和 Keychain 迷药进行保存,是用户敏感数据的安全仓库1.3 Object_C的介绍Objective-C 是非常“实际”的语言。它使用一个用 C 写成、很小的运行库,只会令应用程序的大小增加很小,和大部分 OO 系统使用极大的 VM 执行时间会取代了整个系统的运作相反,ObjC 写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和 Smalltalk 系统要使用极大的内存来开启一个窗口的情况相反。扩展的关键字:interface,类型声明,类似于 c+中的 class,区别在于 Object c 中的声明与实现是强制分开的,interface 关键
14、字用于类型的声明,包括数据成员、方法声明、属性等。方法的参数传递采用中缀符的形式,利用“:”分割参数名和被传递参数,类型的声明以interface 开头,以end 结束。implementation,对应于interface 的类型声明,implementation 表示一个类型的实现过程,同样以end 结束。class,是一个前向引用声明,类似于 C+中的 friend 友元声明,其作用是告诉编译器其后面的字段代表一个类型名称,尽管不知道类型的具体实现,但是只需要将其作为一个类型名称处理即可。通常在使用复合的结构时可以采用class 来减少头文件的相互引用,如果出现循环依赖,则需要依靠cla
15、ss 来避免引用的死循环。property,提供了外界对成员变量的访问接口,其本质是为某一个属性提供set 和 get 操作。synthesize,与property 对应,将一个外在属性与成员变量相关联,定义在 implementation 中,如果属性名与变量名一致则可以省略变量名。Object_C 采用引用计数的方法进行内存管理,由于所有的对象都集成与NSObject,因此所有的对象都可以接受 NSObject 的三个方法:retain 方法将对象的引用计数加一并返回该对象,release 将引用计数减一,retainCount 方法返回对象当前的引用计数。当采用 new、alloc、c
16、opy 方法创建一个对象时,它的引用计数被置为 1,如果程序中对该对象进行操作,则应根据需要,通过调用 retain 和 release 方法来保证该对象在不需要的时候被清除。当一个对象的引用计数被置为 0 后,系统会自动向对象发送一个 dealloc 消息,将其占有的资源释放。通常情况下,如果一个对象的初始化过程调用了其他资源,则应该重写改对象的 dealloc 过程,保证在对象的销毁期正确释放这些资源。类别是为现有的类提供一个新的方法的方法,即使没有一个类的源代码,仍然可以向类中添加一个方法以方便使用。类别的主要目的有 3 个:将类的实现分散到多个不同的文件或框架中,创建对私有方法的前向引
17、用,向对象添加非正式协议。Object C 中的协议类似于 java 中的接口,通过 protocol 关键字定义一个或多个需要遵从协议的对象实现的方法。第 2章 总体设计2.1 系统各个功能模块总体设计iOS 开发是基于 Object_C 语言,使用 iOS SDK 在 Xcode 开发环境下进行开发,其应用与 iOS 系统的移动设备上,本课题主要是本地应用,加入少量网络解析和分享功能。2.1.1 功能总体设计根据系统功能分析,可以分为五大模块:视频解说、视频缓存、直播、Dota2、设置。图 2-1 功能总体设计图2.1.2 主要页面设计页面一览表显示出了本程序的主要页面以及设计的类名,概要
18、的描述了页面的主要功能。表 2-1-2 页面一览表NO 页面名称 设计类名 页面概要1 程序启动页面 RootViewController 程序运行后,最开始进入的界面2 视频解说页面 VideoViewController 可查看各个解说的视频3 视频缓存页面 VideoCacheViewController 下载存储4 直播页面 TvViewController 观看当前能看到的视频5 Dota2 页面 DotaViewController Dota2 的英雄简介和物品简介6 设置页面 SettingViewController2.1.3功能一览表功能一览表显示出了项目的主要功能的实现,以
19、及所需技术或所需添加的第三方SDK,简要的描述了功能概要。表 2-1-3 功能一览表NO 功能名称 功能概要 公共方法 涉及页面1 视频播放调用网上的视频文件播放,使用自定义的 AVPlayer 否 直播页面和视频解说页面2 网络平台分享 使用微信的第三方接口 否 Dota2 页面2.2 iOS的 View的生命周期ViewController 的职责,对内管理与之关联的 View,对外跟其他的 ViewController通信和协调。对于与之关联的 View,ViewController 总是在需要的时候才加载视图,并在不需要的时候卸载视图,所以也同时担当了管理应用资源的责任。理解ViewController 的生命周期,能够有效的管理应用资源,ViewController 的生命周期图:图 2-2 UIView生命周期图