基于ios平台的视频播放器的设计与实现毕业设计论文(编辑修改稿)内容摘要:
gate 协议,代理提供了相关的生命周期方法来处理应用程序的系统事件 [9]。 ( 3) UIWindow UIWindow 是一种特殊的 UIView,通常在一个 app 中只会有一个 UIWindow ,但可以手动创建多个 UIWindow[10]。 UIWindow 的主要作用是 提 供 一 个 区 域 来 显 示 视 图 ; 将 事 件 分 发 给 视 图 控 制 器 ; 与UIViewController协调工作,方便完成设备方向旋转的支持。 ( 4) UIViewController UIViewController 属于 MVC 模型中的 C( Controller),说的具体点是它是一个视图控制器,管理着一个视图( UIView) [10]。 第 7 页 图 41 四大对象关系图 模式 系统中主要使用 MVC 模式, MVC 模式是 Apple iOS 开发需要遵循的设计模式 [11]。 它把一个页面分为三部分。 M 代表 Model,也就是模型,通常是一些模型类(例如 LDLModel 类),用于存储数据。 View 代表视图,用于显示数据。 C 代表控制器( Controller),用于控制 M 和 V 的同步和协调。 当数据改变的时候,要让视图显示更新的数据。 一个应用程序通常是多个这样的页面组成。 它的优点是: ( 1)低耦合性。 ( 2)重用性高。 ( 3)可维护性好。 在本系统中就应用了 MVC设计模式对代码进行封装和分离,具体 MVC结构模型图如图 42 所示: 第 8 页 图 42 MVC 模型关系图 第 9 页 5 系统实现 通过对系统实现需求的设计,我们大致了解我们开发所用的类、框架与模型。 就进入了真正的系统实现模块,首先我们要了解在开发过程中我们所用到的类与类之间的关系,方便开发。 然后根据我们需要实现的功能进行代码的封装,从而实现代码的复用与模块化。 UI即 User Interface(用户界面)的简称。 UI 设计是指对软件的人机交互、操作逻辑、界面美观的完整设计。 UI 处于 iOS 四层结构的最上层( Cocoa Touch),并且放置在 UIKit 框架下,它跟用户的操作息息相关,所以包含的控件也特别多 [12]。 子类与父类之间继承关系如图 511所示: 第 10 页 图 511 子类与父类之间继承图 在本课题的程序实现里面主要用到的控件大致如下: ( 1)显示类 ① UILabel 展示信息,在应用程序中主要用于展示视频信息等等。 第 11 页 ② UIButton 按钮,在应用程序中只要用于相应用户点击时间,比如点击“更多”按钮进入详情界面,点击“历史记录”按钮进入观看历史记录界面。 ③ UIAlertView 警告视图,在应用程序中主要用于展示删除的弹窗警告,给用户更好的体验,选择权在用户手中。 ④ UIView 视图,在应用程序中主要用于展示视频信息,并在视图上进行相应的操作。 ⑤ UINavigationBar 导航条,在界面上展示导航条的位置,方便我们根据导航控制器来控制界面跳转及操作。 ⑥ UITableView 表视图,在应用程序中主要在单元格上展示视频信息,设置信息等等。 ⑦ UICollectionView 集合视图,在应用程序的推荐界面和分类界面都是集合视图来展示分区信息。 ⑧ UIImageView 图片视图,在应用程序中有图片的展示信息都是加载在 UIImageView 视图之上的。 ⑨ UIScrollView 滚动视图,在应用程序主界面轮播图是使用UIScrollView 和 UIPageControl 控件实现的。 ⑩ UIWebView 网页视图,在应用程序中视频播放界面是 UIWebView加载实现的。 ( 2)功能类使用 ① NSDate 处理日期和时间,在应用程序中显示时间和刷新时间。 ② NSTimer 定时器,在应用程序中添加动画效果开始时间,添加定时器。 ③ NSURL 网络路径,在应用程序中封装网络路径。 ④ NSURLRequest 网络请求,在应用程序中设置一些网络的请求信息。 ⑤ NSError 在应用程序中使用到是用来接收网络请求中的错误信息。 ⑥ NSData 数据,在应用程序中把一些信息写入到文件里或发送到网络上 ,我们需要把这些数据转换下 ,变成纯粹的 0、 1 字符流使用到 NSData类。 第 12 页 ⑦ NSNotification 通知,在应用程序中用于界面传递信息,在播放界面和历史记录界面有使用到通知的发送和接收。 ⑧ NSJSONSerialization 数据解析,在应用程序中主要用于解析网络数据,主要分为 XML 和 JSON 解析,在应用程序中主要用到 JSON 解析数据。 ⑨ NSOperationQueue 队列 ,在应用程序中主要用于对对象进行队列操作。 应用程序是我们通过编码实现 UI 界面展示,响应并处理用户事件的最重要的一部分,几乎所有的功能实现都是基于代码的书写来完成的。 下面就应用程序的工作流程、编码实现进行介绍。 应用程序工作流程 应用程序是基于 iOS 技术开发实现的,根据需求,我们需要设计包含主界面以及很多的子类界面。 主界面有:推荐界面、分类界面、搜索界面、设置界面。 子类界面有分类详情界面、剧集选择界面、播放界面、历史记录界面等等。 主界面之间实现用户对视频信息的选择与展示,并响应用户点击事件。 例如:用户点击每个集合视图的 item 时可以跳转到模块分类详情界面;点击模块分类详情界面会跳转到视频信息详情界面,并选择剧集实现播放视频的功能。 主页面主要负责整个应用程序的视频信息,通过添加手势来实现与下级界面的交互,它的信息播放以及视频信息详情展示都由下级页面来完成。 整个界面看起来美观简洁,使得用户使用起来一目了然。 而且通过界面代码实现的复用,很好的降低代码冗余,使得程序运行更加流畅,占据内存空间更小。 根据上面的详细的介绍,我们大概有所了解客户端的整的整个流程。 客户端的流程图如 421 图所示 : 第 13 页 图 421 视频播放流程图 应用程序管理类 (1)管理类 LDLManager 在程序运行中很多地方要使用到网络数据处理,通过实现一次代码书写多处模块复用的功能,这就是 OC 语言封装的概念的具体体现。 下面的代码就是实现文件归档保存数据的方法的声明。 具体在需要用到将数据保存在本地的模块调用这个方法即可。 typedef enum { ModelPackageTypeRefresh,//刷新数据 ModelPackageTypeLoadingMore//加载更多 }ModelPackageType。 + (id)manager。 //沙盒存储 (NSString *)filePath:(NSString *)string。 //归档文件的保存路径 (void)save:(NSString *)string。 //保存数据到硬盘的方法 + (id)manager;方法是一个便利构造器方法,表明 manager 这个对象在程序运行过程中一直存在,不被销毁。 (NSString *)filePath:(NSString *)string。 //归档文件的保存路径 (void)save:(NSString *)string。 //保存数据到硬盘的方法 以上两个方法实现将数据保存在本地,归档保存,实现数据持久化。 ( 2) LDLBaseModel 类,继承自 NSObject 在数据处理时,很多时候网络接口返回的数据都是字典类型,声明一个字典的初始化以及便利构造器方法,使得在要将数据存储在字典里 第 14 页 时直接调用 LDLBaseModel 这个类封装的字典方法,避免使用一次就初始化一次,减少代码冗余。 封装方法字典保存数据,为之后网络数据解析与封装做铺垫,并且有利于代码的复用。 @interface LDLBaseModel : NSObject (id)initWithDictionary:(NSDictionary *)dictionary。 + (id)modelWithDictioanry:(NSDictionary *)dictionary。 (id)initWithDictionary:(NSDictionary *)dictionary { if (self = [super init]) { } return self。 } + (id)modelWithDictioanry:(NSDictionary *)dictionary { return [[[[self class] alloc] initWithDictionary:dictionary] autorelease]。 } @end 应用程序工具类 iOS中提供了一。基于ios平台的视频播放器的设计与实现毕业设计论文(编辑修改稿)
相关推荐
业安全可靠的生产,有着巨大的经济效益和深远的社会意义 [2]: 及时掌握设备运行状态异常或故障的早期征兆,采取相应的措施,将故障消灭在萌芽状态,避免或减少重大事故的发生。 一旦发生故障,能自动记录下故障的完整 信息和 数据, 有利于 事后进行故障原因分析,缩短维修时间 ,减少维修 费用,提高设备利用率,避免 同类事故 再次发生。 通过对设备状态异常的原因和性质进行分析,采取适当措施,对设备状态
厂家安全销售药品的环境,加快各大药品企业对我国 市场的响应速度。 课题意义 和传统销售模式相比,网上药店拥有诸多优势,凭借着这些优势,网上药店得到了顾客消费者的肯定,在逐步改变着人们的消费观念和消费方式。 对于商家来说,网上药店有诸多好处: :和传统的实体药店相比,网上药店突破了时间和空间的阻碍,只要给你一台能上网的电脑你就能买到自己满意的商品,因为网上药店拥有强大的交互功能
想要查看的城市后点击并进入天气查询,包括即时的天气情况和未来 5天内的天气情况,内容带有文字和图片并显示在列表上,并将详细信息显示在单独的 view里的 lable 上; (4) 天气趋势:将未来 5天内的最高气温和最低气温分两条不同颜色的折线显示在画板上,使用户更直观的了解到未来 5 天内的天气变化; (5) 实景拍摄:点击 Button 键后可以调用手机自带的相机并进行拍照
CPU T0 T2 INT0 INT1 并行I/O接口 串行I/O接口 存储器 P0~P3 T1 TXD 基于 GSM短消息的远程门禁系统设计与实现 8 用到了 ( RXD), ( TXD)位的第二功能,并通过 , 与 GSM模块 TC35i,单片机与 PC机之间的信息传递。 STC89C52RC各引脚对应的第二功能如下图所示: 表 3 STC89C52RC引脚对应第二功能 引脚 第二功能
泄漏的区域,当煤气或者其他煤气泄漏的时候,空气中气体浓度超过设定值时,装置会发出灯光及声音的报警。 感器需要在加热状态下工作,温度越高,反应越快,响应时间和恢复时间就越快。 为提高响应时间,保证传感器准确地、稳定地工作,需要向气体传感器持续供给 5V 的加热电压。 气体报警器能实时范围检测工作,当烟雾的浓度达到设定的浓度时,发出声光报警。 如果是电磁阀泄漏,还可以添加自动断阀装置。
(label_2:, _, _, _) (+, i, 1, i) // 迭代 (jmp, label_0, _, _) (label_3:, _, _, _) 每个 for 语句会产生四个标号,一个表示类似“ i = 0”的初始化,一个表示类似“ i 3”的条件判断,一个表示 body,一个表示类似“ i++”的表达式。 ifelse 语句 if(a b) 基于 GUI