分享
分销 收藏 举报 申诉 / 81
播放页_导航下方通栏广告

类型基于iOS平台播放器的设计与实现毕业论文.doc

  • 上传人:胜****
  • 文档编号:2097812
  • 上传时间:2024-05-15
  • 格式:DOC
  • 页数:81
  • 大小:8.15MB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于 iOS 平台 播放 设计 实现 毕业论文
    资源描述:
    中图分类号: TP311.1 UDC: 620 密级: 公开 学校代码: 10094 万方数据 硕士学位论文 (学历工程硕士) 基于iOS平台播放*的设计与实现 The Design and Implementation of the Player Based on iOS Platform 研究生姓名:张超 指导教师:赵冬梅教授 学科专业:计算机技术 研究方向:计算机网络与信息安全 论文开题日期:2014年06月02日 [_|醜 学位论文原创性声明 本人所提交的学位论文《基于i〇S平台播放器的设计与实现》,是在导师的 指导下,独立进行研究工作所取.得的原创性.成果。除文中已经注明引用的内容外,. 本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究 做出重要贡献的个人和集体,均己在文中标明。 本声明的法律后果由本人承担。 指导教师确认(签名): y呔年艾月2女曰 .论文作者(签名): 夂年r月忒日 学位论文版权使用授权书 本学俾论文作者完全了解河北师范大学有权保留并向国家有关部门或机构 送交学位论文的复印件和磁盘,允许论文被查阅和借阅。本人授权河北师范大学 可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩' 印或其它复制手段保存、汇编学位论文。 (保密的学位论文在 年解密后适用本授权书) 论文作者(签名): 指导教师(签名):0 V#年夂月^日 74一年i:月呤曰 随着时代的发展,人们越来越喜欢用手机终端来欣赏视频,方便而快捷,当下流行 的视频格式有很多种,如MOV,MP4,3GP,AVI,FLV,RMVB等,对多种视频格式都支持 的手机应用播放器成了人们娱乐生活中所必需的应用。然而系统原有的视频播放器 支持的视频格式有限,难以满足人们通过移动终端观看视频的需要,所以特别需要开发 一个可以支持大多数视频格式的全能影音播放器。 因此本文主要研究如何实现这个全能影音播放器。该播放器可以得到程序沙盒中的 视频文件,并可以对其进行管理。应用VLC技术对视频文件进行解码和语音的同步播 放。该播放器在MACOSX系统中进行开发,开发工具是Xcode,开发语言是Object-C, 在iPhone,iPod touch等设备上进行调试。 基于iOS的播放器主要功能是视频的播放,所有工作都是围绕如何进行视频的解码 与播放展开,因此论文的主要工作分为四个方面:第一,视频的解码与播放。本研究采 用了 VLC技术实现视频的解码和播放,其支持大量的编码格式和传输方式,主要使用 了 FFmpeg作为其解码器。播放视频时可以拖动进度条实现视频的跳跃,可以暂停、调 节音量大小、缩放屏幕等操作。第二,视频文件的管理。主要实现对本地文件的管理, 如可通过iTunes导入本地文件,删除本地文件,查看视频详细信息,打开视频文件进行 播放等。第三,流媒体文件的添加和管理。用于流媒体的管理和播放。可以手动输入添 加流媒体文件,也可通过扫描二维码添加流媒体文件,二维码扫描的实现采用了第三方 库ZBar。添加成功时将用户添加的流媒体信息保存到数据库中。第四,播放历史记录。 记录播放过的本地文件和流媒体文件,以便查看和快速跳转。采用SQUte数据库对播 放信息进行保存。除核心模块以外,还有用户的反馈模块和系统的介绍模块。用户可以 以邮件形式向开发者进行使用情况的反馈。 综合以上研究,幵发了一款基于i〇S平台的通用播放器。本研究探索视频解码技术 和视频音频同步播放,系统的实现打破了 i〇S自带播放器对于视频格式的限制,支持多 种当下主流视频格式的播放。该研究与实现除了具有重要的学术方面的研究价值,还有 非常大的实际应用前景和市场需求。 关键词:iOS iPhone播放器VLC FFmpeg流媒体 v 万方数据 万方数据 Abstract With the development of the times, people are showing a growing interest of watching videos on their mobile phones, convenient and flexible. There are many popular video formats nowadays, like MOV, MP4, 3GP, AVI, FLV, RMVB and some others. The mobile apps which can support various kinds of formats are a necessity in peopled daily entertaining life. However, the existent video player possessed by intrinsic iOS system can just satisfy a limited number of video formats, unable to meet peopled needs for watching videos on mobile devices. So it is in an urgent need to develop a universal video player which is able to support most video formats. This essay puts its main efforts on the research of such a player mentioned above. This player can get video files from the sandbox and then manage them. It applies VCL technique for the decoding and sound parallel playing on the video files. This player is developed in MAC OS X system, Xcode as the developing tool and Object-C as the developing language. Debugging of this player is also done on iPhone, iPod touch and other devices. The main function of the player based on iOS is video playing and all work involved is around how to decode and play the videos. Therefore the main contents of this essay are divided into 4 parts, listed as follows: First, the decoding and playing of videos. This research adopts VLC technique for the video decoding and playing fulfillment, which supports plenty of coding formats and transferring methods. It mainly uses FFmpeg as the decoder. The progress bar can be dragged during the video duration for the video skip operation, as well as pause, volume changing, zooming in and out and other operations. Second, the management of video files. It mainly fulfills the management of local files, like importing local files through iTunes, deleting local files, checking detailed information of videos, opening video files for playing and some others. Third, the adding and management of flow media files. It targets on the management and playing of flow media. It makes it possible to manually input for adding flow media files or scan 2-dimesion bar for their adding. The latter adding method adopts a foreign library-ZBar. The flow media information added by users can be then saved into the database after successfully added. Fourth, playing of the records. It is used to record the local files and flow media files having been played before, making it easy for the files checking and skipping. It applies SQLite database to save the playing information. Apart from core module, there are also user feedback module and system introduction module. Users can make feedbacks to developer in mail formats according to use condition. With a comprehensive study of the research mentioned above, a general player based on iOS platform is developed after a comprehensive study of the researches mentioned above. This research makes a study about the video decoding technique and synchronous playing of both video and audio. This system breaks the restriction for the video playing in formats accepted only by the player of iOS, which means supporting video playing in most of the mainstream formats. Besides possessing value in academic field, this research and fulfillment are of great potential in fixture application and market requirement. Key Words : iOS, iPhone, Player, VLC, FFmpeg, streaming media VI m ^ rn Abstract V 1绪论 1 1.1研究背景 1 1.2研究目的 1 1.3研究的意义 2 1.4论文的组织结构 2 1.5 本章小结 3 2 iOS平台相关技术 4 2.1 iOS开发环境 4 2.1.1 iOS系统架构 4 2.1.2 iOS开发环境与工具 6 2.1.3 iOS 开发语言 Object-C 8 2.2 iOS开发模式 : 8 2.2.1 MYC^ 8 2.2.2 Target/Action 模式 10 2.2.3 Singleton 模式 10 2.2.4 Delegation 模式 10 2.3数据的持久化 11 2.4二维码扫描 11 2.5常用视频格式介绍 11 2.6流媒体 12 2.7 VLCMA 13 2.8本章小结 13 3 需求分析 14 3.1功能需求简介 14 3.2 主要模块介绍 15 3.2.1文件管理模块介绍 15 3.2.2流媒体管理模块 17 3.2.3视频播放模块介绍 19 3.2.4历史记录管理模块介绍 21 3.2.5关于界面模块介绍 23 3.3 非功能性需求分析 25 3.4系统运行环境 25 3.5 本章小结 26 4系统设计 27 4.1设计与开发的总体思想 27 4.2系统整体架构 27 4.3系统主要模块设计 27 4.3.1视频文件管理模块 27 4.3.2视频播放模块 28 4.3.3流媒体管理模块 29 4.3.4历史记录模块 31 4.4交互设计 31 4.4.1交互设计原则 31 4.4.2界面层次 32 4.4.3界面元素安排 32 4.5本章小结 33 5系统实现 34 5.1系统核心模块的实现 34 5.1.1视频文件管理模块 34 5.1.2视频播放模块 35 5.1.3流媒体管理模块 37 5.1.4历史记录模块 39 5.2系统实现整体展示 40 5.3系统关键实现实例展示 45 5.3.1本地文件管理 45 VIII 5.3.2流媒体文件管理 50 5.3.3历史记录管理 52 5.4本章小结 55 6总结与展望 56 6.1 系统的成果 56 6.2系统的不足 57 6.3展望 57 参考文献 58 gC it 60 万方数据 万方数据 1绪论 1.1研究背景 随着移动互联网时代的到来,手机逐渐成为了新的娱乐终端⑴。人均用在移动电子 设备上的时间所占日常消遣的时间比重日益增加,移动设备对人们生活的影响也越来越 大,人们在生活甚至工作上都对移动设备产生了依赖感。在生活中,观看视频是人们生 活中很重要的一部分,视频的播放也逐渐成为手机的一个重要功能,伴随着手机屏幕的 发展,已经从早期的黑白屏发展到了如今的高清巨屏,人们也越来越喜欢在手机上欣赏 视频,不仅给娱乐生活带来了很大的方便,也很有利于工作的开展。基于这样的背景, 探索研究手机应用视频播放器很有必要。 对于数字视频,由于多个公司都有着自己的标准,造成了现在存在着大量的视频格 式。美国苹果公司推出的基于i〇S移动设备比如iPhone手机,仅支持MOV, MP4等少 数视频格式,如果用户想在iPhone手机上欣赏不支持格式的视频,比如网络上比较流 行的1^8,人¥1彳1^等格式,用户必须在电脑上进行转码,转码成1^0¥,皿>4等 iPhone支持的格式,而转码将占用大量的CPU资源,消耗大量的时间,浪费了用户的 宝贵时间。为此,iPhone平台上需要一个支持多种格式视频播放的软件,而iPhone十 分强大的硬件性能,使其具备了视频解码的必要技术条件[2]。 除此以外,近几年来苹果移动设备越来越受到国内外用户的认可,流畅的操作,舒 适的交互设计,不仅得到越来越多的学生、白领的青睐,也很受中青年以及商务人士的 喜爱,因此苹果移动设备占据着非常高的市场比重。无疑,基于i〇S的应用有较高的使 用率,与人们生活紧密联系。 1.2研究目的 当下市场上基于iOS平台的自带播放器的稳定性等方面已相当成熟,但是系统自带 播放器对于视频格式的支持具有很多的局限性,这使得很大一部分用户对移动设备的视 频播放功能需求难以满足,因此研究开发一款支持大多数视频格式的通用播放器具有很 大的市场需求,可以更好地满足视频爱好者的需要。 基于iOS市场上对于多种格式视频的通用播放要求,针对用户对播放器需要能够支 持多种不同格式视频的播放需求,开发一款能够满足用户需要和解决市场需求的播放 1 万方数据 器。探索视频的解码和视频音频的同步播放技术,为市场上视频解码器及播放器的研究 与开发提供技术支持。 探索学习VLC技术,研究采用FFmpeg[3]作为解码器的视频解码技术,开发一个支 持大多种格式视频播放的全能影音播放器,比如当下主流的RMVB,AVI, FLV,MOV, MP4等视频格式,使用户打破苹果系统自带播放器对于视频格式的限制,不再仅限于 单一的几种视频格式,而且不用转码,直接通过iTunes将视频导入到程序中进行播放, 解决用户用iPhone或者iPod观看视频的麻烦。 1.3研究的意义 基于iOS平台的播放器研究意义主要包含以下两个方面: 一是系统自带视频播放器的研究实现虽然已经很成熟,但支持视频格式局限性较 大,市场上对通用多种视频格式的播放器有较大的需求。本系统实现了对当下主流视频 格式的解码,支持大量的编码格式和传输方式,打破i〇S自带播放器对视频格式的限制, 解决了苹果移动设备用户观看视频的烦恼,用户可以直接通过iTunes将视频倒入程序 中进行播放,极大的方便了用户的使用。 二是该研究程序具有流媒体播放功能,满足市场上用户对网络视频资源的需求,本 系统支持互联网上的流媒体资源,使用户手机在手就能享受移动互联网带来的便利。而 且操作简单,适用于不同年龄段的人群需要。如此一来扩展了 iPhone手机的功能,增 强了 iPhone的多媒体能力,满足电子市场上用户对播放器的更高要求。 综上所述,基于苹果平台移动终端的视频播放器的研究与设计实现十分重要,该 研究与实现除了有重要的学术方面的研究价值,还很有非常大的实际应用前景和市场 需求。 1.4论文的组织结构 本论文通过对基于i〇S播放器的现状分析和总结,对一款基于i〇S平台的通用的、 支持多种播放格式的播放器进行设计和实现。本篇文章的结构如下: 第一章是绪论,对基于i〇S平台播放器的研究背景、目的、意义和国内外播放器的 研究现状,以及本论文的组织结构。 第二章是本项研究中用到的相关技术。本研究涉及到的相关技术较多,包含了 i〇S 开发的环境、开发工具和语言,i〇S常用到的开发模式,数据的持久化方法,二维码扫 描技术,VLC,流媒体,并对当下常用的视频格式进行了介绍。 万方数据 第三章是对本研究就行的需求分析,包括功能性需求分析和非功能性需求分析,对 本研究中涉及到的主要模块进行了介绍,以及对系统运行环境的分析说明。 第四章是基于i〇S播放器的系统设计。介绍了开发与设计的总体思想,系统整体结 构,系统主要模块设计和本系统的交互设计。其中详细介绍了系统主要模块的设计,包 含视频文件管理模块,视频播放模块,流媒体管理模块,历史记录模块。 第五章是播放器系统的实现。对整个系统进行详细的展示说明。对系统关键实现实 例进行了展示,其中主要实例有本地文件管理,流媒体文件管理,历史记录管理等。 第六章是最后一章,是对基于i〇S播放器涉及到的相关技术研究和设计实现的总结 与展望。归纳系统的成果,总结系统的不足,对后续的研究工作进行展望。 1.5本章小结 本章是绪论,主要介绍了基于i〇S播放器的研究背景、研究目的、研究的意义和本 论文的组织结构。苹果系统自带的播放器具有局限性,只支持少量视频格式的播放,当 用户想看特定格式视频时还需先从电脑上进行转码,这使得用户很不方便。在此背景下, 目的就在于开发出一款支持大多数视频格式的通用播放器,以便用户的使用,方便了用 户观看不同格式的视频,不仅如此,还支持网上流媒体的播放,用户可以享受到互联网 资源。 3 万方数据 万方数据 2 iOS平台相关技术 2.1 iOS开发环境 2.1.1 iOS系统架构 iOS是美国苹果公司开发的一款操作系统,该操作系统是苹果公司为移动终端产品 自主开发的。i〇S不仅可以在苹果手机中使用,还能够应用在平板电脑等电子产品上, 包含一系列市场上很畅销的电子产品。由于这样的市场大环境以及参考苹果系统中自带 视频播放器对于视频格式的局限性,本研究采用了 i〇S作为通用影音播放器的开发平 台,一是由于其具有非常广阔的市场前景,二是因为i〇S也具有很好的技术支持。 苹果系统架构是分层结构,可以看作是从低到高多个层的集合[41,从低到高分为核 心操作系统层Core 0S,核心服务层Core Service,媒体应用层Media,可触摸层Cocoa Touch。各个不同层的集合实现了 i〇S技术,基础的服务是由底下的层来提供,提供给 应用程序,而处于上面的层则包含了丰富的技术和服务。i〇S操作系统层次划分见下图 所示: 核心服务层(Core Service) 图2.1 iOS操作系统层次划分 核心操作系统层(Core 0S):在iOS架构体系中,其中处在最底下一层的是Core OS层,即核心操作系统层,该层主要负责一些重要的操作任务,比如该层负责系统与 硬件的相互的交流等操作。该层包含的主要组件有OS X Kernel,;File System,Mach3.0, Keychain, Certificates 等。 核心服务层:即Core Service层,该层在iOS架构体系中处在核心操作系统层Core OS层的上边的位置。核心服务层里的框架包含Foundation、Core Location、CFNetwork、 5 万方数据 Core Foundation层。其中为iOS程序开发提供和服务功能和基本数据管理的是Core Foundation 框架[5]。 媒体应用层:即Media层,Media层是第三层,其提供的不同技术相互结合后能够 非常出色的完成各种多媒体服务的应用和相关开发,为手机、平板灯移动终端带来最好 的多媒体体验。该层中包括了音频技术、视频技术、图形图像等相关技术,这些相互结 合的技术为APP增色很多,为用户带来了更好的多媒体体验。 可触摸框架层:该层处在各层的最上层,开发者可以通过该层提供的软件开发框架, 可以研发出各种可以实现人机交互、触摸操作的应用程序,为开发各种各样的智能终端 软件提供了便捷的方法和技术支撑。 这些框架当中,UIKit是苹果应用程序的核心框架[6],这是因为该框架提供了某些 应用程序运行所不能缺少的对象,例如触摸屏动作、操作等用户操作。这样就可以使程 序知道用户有哪些输入,从而进一步通过屏幕显示。 iOS中的不同框架提供了不同的服务和功能,可以通过这些来进行苹果应用程序的 开发。如下图所示,在项目的开发中常用到的以及本项目中需要用到的基本框架: 表2.1常用的iOS SDK框架列举 框架名称 框架的主要功能介绍 Foundation 提供Object-C基础类和基本数据类型以及操作系统服务等 UIKit 提供了基本的UI界面功能和识别用户触摸操作等功能 CoreGraphic 提供媒体层里很多与图像有关的功能 Media Player 提供视频和音频的播放功能 CoreFoudation 提供了抽象数据类型如 XML,Unicode strings, URL 等 Audio Toolbox 提供音频录制和回放的底层API,同时也负责管理音频硬件 CFNetwork 访问以及配置网络,例如 HTTP, FTP,Bonjour Services 等 上图中,列出的UIKit、Foundation和CoreGraphic这三者都是默认设置下程序工程 文件自带的三个基本框架,我们在涉及到具体的应用软件开发中,单单使用i〇S自带的 框架肯定是远远不够的,所以在某些不同情况下也会需要用到第三方的开源库,从而进 行相关负责问题的解决以及其它特定功能的实现[7]。 万方数据 2.1.2 iOS开发环境与工具 美国苹果公司提供的iPhone开发工具包是iPhone SDK[8],iPhone SDK工具包提供了 一系列的开发工具,这些开发工具包含面广且完整,可以独立开发苹果公司的各类移动 设备的应用程序,支持的设备包括iPad,iPhone等移动电子设备。这些工具具体有Xcode, IPhone Simulator, Instruments, InterfaceBuider〇 (1) Xcode - Xcode与windows平台里的visual studio功能作用相似,是苹果公司 为i〇S开发提供的集成开发环境IDE,是一个开发工具集,幵发人员所做的创建工程, 编写代码,编译代码,调试程序等开发操作都可以通过Xcode以及其提供的工具进行开 发工作。编译器使用的是GCC编译器[9]。 (2) IPhone Simulator-iPhone模拟器[1Q]。在苹果应用开发过程中,每完成一个模 块或一个版本的开发工作后都需要对代码进行调试,查看阶段性的开发成果,若每一次 的调试查验都需要在iPhone或者iPad设备中运行的话是非常繁琐的过程。这时,模拟 器IPhone Simulator简化了这个过程,可以模拟移动设备显示程序效果,不需要移动设 备就能尽情享受开发,iPhone模拟器既可以iPhone也可以非常不错的模拟iPad。如下 图所示: 图2.2 iPhone模拟器 7 万方数据 模拟器为开发者的开发过程带来了很大的便利,开发人员开发应用程序时可以利用 模拟器看到编写代码和修改代码的效果,不需要将编写的程序装到iPhone或iPad等实 际设备上,如此一来为开发人员节省了很多时间,提髙了开发效率。除此以外,在模拟 器中运行编写的代码之前不需要购买和安装开发人员证书。不过,顾名思义模拟器是模 拟用的,具有局限性,有些实际设备具有的特性模拟器是没有的,如模拟器不能提供设 备传感器读数,不能模拟复杂的多触点事件,也不能显示某些类型的图形(如0PenGL 图形)等。因此,模拟器不能替代真正的苹果移动设备iPad和iPhone。尽管如此,模 拟器的功能也还是很强大的,对于大多种类的苹果软件开发是够用的,在开发中是 开发者必不可少的开发工具。 当程序的开发进展到一定程度,就需要使用模拟器来检验效果。在模拟器启用程序 之前,需要Xcode打开项目的状态,将Active SDK设置为模拟器,即iPhone Simulator, 然后单击创建和运行键Build and Run,随后刚刚开发的程序在模拟器中启动显不。开发 人员查看界面和运行效果,因为是模拟器而做不到用手指来操作界面,借用鼠标和模拟 器中的应用程序进行交互操作,类似于用手指在做各种手势,来实现如单击、拖动等操 作。若设计到输入的程序,可以通过鼠标点击获得输入键盘,键盘显示出来后通过鼠标 点击键盘来实现输入字段。除此以外也可以通过电脑键盘来输入,或者通过复制、粘贴 实现字段输入。 类似于真实苹果移动设备iPhone和iPad,当在模拟器中需要从程序中退出时,单 击主屏幕上的虚拟按钮Home键即可退出当前程序。 每次在模拟器中启动一个新编写的应用程序时,模拟器中将自动安装启动的该程 序,这一点与在类似于在实际设备iPad中安装软件。当然,安装后不会自动卸载程序, 当不需要测试该程序或要检验新版本时需要手动将该应用程序删除,不然会一直保留在 模拟器中。删除的方式就是在要删除的应用程序图标上单击并按住鼠标,保持几秒后图 标开始动摇,这是图标左上角出现一个叉号,叉号就可以把安装的应用程序从模拟器中 删除。也就是说,在真实苹果移动设备上卸载软件与在模拟器中卸载软件的方法没有任 何的不同。把iPhone模拟器恢复到原始状态的方法是,从模拟器iPhone Simulator中点 击重置和设置选项Reset Content and Settings,即可重置模拟器[11]。 当程序员开发完成或有一定阶段性进展,就可以上传到设备上查看开发效果,程序 开发完成并调试完成后就可以提交到苹果商店中。 万方数据 (3) Instruments-该工具是性能测试工具,功能十分强大,能够帮助程序员在程 序运行的时候进行性能评估,所反馈的评估接种中包含一些列有关的性能指标,给出的 包括网络的使用状况和内存测试等性能指标。 (4) 11^1€&〇68111(161:-是1?11〇1^801(;中用语用户应用程序界面设计和软件测试的 一款工具[1'应用与开发程序中提供了苹果应用开发中常用的设计模型和控件等,可用 于应用程序可视化界面的构建与编辑操作。该工具的使用使开发者的开发工程更加灵 活,开发人员可以根据不同项目的不同需求来进行不同的相关设置。 2.1*3 iOS 开发语言 Object-C 0切6〇1-(:[13】是iOS的开发语言,该开发语言是Brand J.Cox在上个世纪八十年代设 计出来的,Object-C设计的基础是一种叫做SmallTalk-80的语言。Object-C有自己明显 的不同特征,该语言更为彻底地支持动态机制,很多对象本身的数据信息被编译器保留 了下来,正式由于这一点某些编译的时候做出的选择能够推迟,直到运行时再决定。 Object-C也具有封装、继承、多态等特点,这与其他的面向对象是一样的。〇bject-C 语言中的每个对象都有实例变量和方法的,实例变量是数据结构的字段,方法是对象之 间的函数的调用[14】。Object-C不支持多重继承,在运行时可以允许根据字符串名字来访 问方法和类,可以动态链接以及添加类,因为Obdect-C是动态定性,即dynamicaly typed。 面向对象的编程有一个重要特点,就是可以支持可重用代码单元的构建,这些可重 用代码单元能够与过程性开发中的一般常规性流程实现分离。过程流不是面向对象的程 序必需的,面向对象是围绕着对象及其方法提供的智能数据结构而开发的。Mac OSX 上的Cocoa和iPhone中的Cocoa Touch提供这些智能对象的一个巨大的库[15】。这个智 能对象巨大的库给予了开发程序员iOS丰富的工具储备箱,从而开发人员可以用最少的 工作量和代码量就能创建出来既高效又强大的苹果应用程序。 2.2 iOS开发模式 2.2.1 MVC 模式 Objective-C是苹果系统开发中采用的编程语言,前文也详细介绍了该语言的特点, 其也是一种面向对象的编程语言,因此苹果系统的开发架构也是面向对象的技术。iOS 应用的开发也是采用MVC设计模式[16],即模型(Model)、视图(View)、控制器 (Controller)设计模式。顾名思义,该设计模式把程序的功能划分为对应模型、视图和 控制器的三种不同种类: 9 万方数据 (1) 模型(Model):封装应用程序状态,保持应用程序数据的类,响应状态查询, 通知视图进行变更,可以把它看成数据的提供者。在MVC设计模式中,模型是数据处 理最多的一个部分,是MVC的核心部分。由于模型能把所有对数据的操纵集中在一个 部件里,别的部件仅仅通过调用模型层提供的接口就能够使用数据,如此一来可减少代 码的重复性[17]。 (2) 视图(View):对模型数据的展示通过视图完成,向控制器发送用户进行的操 作,向模型发送变更请求,允许控制器对其进行变更,概括之,它是应用软件显示的界 面,能被用户直接看到的。对于i〇S来说,视图(View)指的是用户呈现内容的视图 容器。这些容器根据显示内容的不同而又不同类型。举几个i〇S中视图容器的例子:滚 动窗口的容器是UlScrollView类,这一类视图中能添加子视图从而形成视图树状的结 构;还有只显示数据内容而不能添加子视图的,如UllmageView,该视图只能作为视图 树状结构里的叶子节点;所有视图容器的基类是UlView。需要说明的是,在MVC中 业务流程的处理是由模型部分来完成的,而不是视图,视图仅限于对用户请求进行处理 和采集用户所需要的数据。 (3) 控制器(Controller):定义用户的行为,将用户操作与视图更新进行映射,选 择响应视图,控制器在MVC设计模式中是以中介或者协调者的身份存在的。接收用户 的数据输入,联系模型、视图来一起完成用户的请求。控制器本身并不对用户请求和提 供的数据做出响应,而是通过视图层来接收用户的输入后交给模型(Model)来处理。 模型的处理爱我牛逼后将反馈结果传给控制器,控制器再将收到的反馈结果传给对应的 视图层,进而将数据信息反馈给用户。 下图2.4是对MVC设计模式模型-视图-控制器三者之间的信息交互、相互联系的 展示: 图2.3 MVC关系图 如图所示,MVC设计模式中,模式(Model)和视图(View)之间不直接进行信 10 万方数据 息传递,从中协调和传递是通过控制器(Controller)来实现的,可以说控制器是两者之 间的媒介。通过用控制器来接收用户操作,控制器将这些接收的操作转换成信息,然后 再通知视图和模型当前用户的动作。 MVC模型在苹果应用开发中的使用要注意一下几个方面: (1) 模型和视图不能直接对话,之间的联系是通过控制器来实现的; (2) 控制器可以和模型直接进行对话,模型是通过KVO机制和Notification实现 与控制器间接通信的; (3) 控制器可以和视图直接对话,视图把事件告诉给控制器是通过action来实现 的,控制器是视图的直接数据源,数据的来源是控制器从模型中取得的。 2.2.2 Target/Action 模式 称之为目标/动作模式,该模式是控件使用模式,也就是指iPhone用户界面中大部 分控件使用的模式。在程序开发的过程中,每当在界面中创建一个控件,就要分配一个 target对象(目标对象)向所创建的控件发送消息。而且要为分配的这个目标对象提供 一个方法,在特定的动作发生时会调用这个对象提供的方法【18]。 2.2.3 Singleton 模式 Singleton模式又称为单例模式[19】,是一种在软件开发过程中常见的设计模式。它 的核心思想是只包含一个被称为单例类的类。通过单例模式,我们可以保证系统中一个 类只有一个实例并且该实例便于外界的访问,从而可以更好地节约系统资源。单例模式 保证在系统中某个类的对象只存在一个,从而保证了开发过程中的灵活性和方便性。这 个模式的使用频率很高,通过一个单例类,便可以实现在不同的窗口这间传递数据,从 而控制应用程序的共享资源。 2.2.4 Delegation 模式 Delegation模式也称作委托模式,委托模式自然有“委托方”和“被委托方”,所以一 定是有两个对象,两个对象一起参与一个请求的处理,其中一个对
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:基于iOS平台播放器的设计与实现毕业论文.doc
    链接地址:https://www.zixin.com.cn/doc/2097812.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


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

    自信网络  |  ZixinNetwork