《基于android平台的视频播放器设计文献综述汇总.doc》由会员分享,可在线阅读,更多相关《基于android平台的视频播放器设计文献综述汇总.doc(12页珍藏版)》请在三一办公上搜索。
1、四川理工学院毕业设计 文 献 综 述基于android平台的视频播放器设计学 生:徐东学 号:12021040122专 业:电气工程及其自动化班 级:2012.卓越指导教师:曾晓辉、刘兴忠 四川理工学院自动化与电子信息学院二O一六年三月目录第1章 前 言11.1设计的目的及意义11.2国内外发展现状11.3 视频播放器概述2第2章 综述42.1、Android基本知识42.1.1 android多媒体系统介绍:42.1.2 android平台42.1.3 Android的四大组件52.1.4 开发工具Eclipse62.1.5 开发语言Java62.2 播放器结构72.2.1 文件列表界面72
2、.2.2 控制菜单72.2.3 Toast模块82.2.4 小结8第3章 总结9参考文献10第1章 前 言1.1设计的目的及意义随着当今科学技术的发展, 各种各样的应用被安装到移动电话上,比如视频电话,VOD视频,移动上网冲浪,在线阅读和资料共享等。为了实现这些应用,移动电话的功能变得更聪明且智能,这也表明了移动互联网到了新时代。新时代的到来,需要一个强大的开发平台来支持,因此,智能手机操作系统技术和研究已成为最活跃的领域之一。由于现在Android的开放性,现在的Android系统已经应用于手机和平板电脑上,许多的商家已经将Android移植到高清播放机和智能电视设备上,通过这样消费者会有更
3、多的机会使用已电视作为屏幕的Android系统,这样就把视频播放器显得更为重要了,本课题研究设计了一个基于Android系统的视频播放器,以APK的形式安装在Android手机和平板中,本应用从系统的数据库读取视频信息,显示视频列表,有相应的播放界面,查看视频信息的功能,视频比例的切换,相应的控制菜单,实现视频的删除功能和上一集下一集,以及手势控制播放界面的亮度和声音大小,应用操作简单功能全面,并且可以播放几乎是有的视频格式,让用户有良好舒适的体验。Android上面的视频播放器很多公司和个人都在开发,并且其中的一些播放器如moboplayer、RockPlayer、realPlayer、VP
4、layer等受到消费者的青睐,但是目前大多数播放器功能多样繁复,占用内存大,嵌入过多的广告使用户没有良好的用户体验,所以有必要开发出一款功能全面,操作简单,并且具有较强解码能力的视频播放器。1.2国内外发展现状Android是一种真正意义上的开放型的并且不依赖于设备的移动设备综合平台,他包括操作系统,中间件和应用的主要部分。伴随开放的架构和优秀的研发环境,使Android的手持设备得到充分利用,他能提供有吸引力的移动应用,并且没有任何以前的块移动的独家产业创新的障碍。Android有丰富的图形系统,这使得它易于开发多媒体应用和网络浏览器的工具。自Android问世以来,全球开发者已经做出了超过
5、100万个应用,国内外出现了许多不错的视频播放器。MoboPlayer,是由济南四叶草信息技术有限公司开发的,MoboPlayer需要在Android1.6或更高的版本上运行,MoboPlayer可以兼容更多的视频格式,并且努力实现任何视频格式都可以直接放在手机上播放。VPlayer,最初由个人制作,后来组成团队,叫做“做一下”。VPlayer是一款很较为流行的视频播放器,根据VPlayer的官方说明,其下载量已经超过了百万级,VPlayer的特点是支持多数格式的视频,启动后直接进入视频文件夹,就可是对视频进行播放,使用方便等。RockPlayer,是由上海的ChangeTec.h公司开发,R
6、ockPlayer是一款比较高效能的视频播放器,能支持多数的视频格式,具有个性化的UI布局和设计,可以和其云端的服务相配合,用户之间可以分享视频。RealPlayer,和PC上的RealPlayer是一样的,andriod上的RealPlayer也是由RealNetworks公司研究开发的,能同时播放音乐,视频,照片,但是解码能力不是很全面。1.3 视频播放器概述本次设计基于Java语言进行嵌入式播放器开发,系统简单并且占用空间小,但功能齐全。实现目标:1.从手机数据库获取所有视频信息。2.播放mkv,flv,MP4,RMVB等常见格式的视频。3.实现删除视频文件的功能 。4.实现手势刷新功能
7、 。5.实现播放界面全屏播放的功能。6.播放/暂停,上一集,下一集,手势实现音量/亮度的调节。正如我国资深嵌入式系统专家沈绪榜院士的预言,“未来十年将会产生头大小、具有超过一亿次运算能力的嵌入式智能芯片”,将为我们提供无限的创造空间。总之“嵌入式微控制器或者说单片机就好像是一个黑洞,会把当今很多技术和成果吸引进来。中国应当注意发展智力密集型产业”。 嵌入式播放器的发展,也会使影音播放更加的方便、适用和简单,有很大的发展趋势。第2章 综述Android智能手机和平板在市场上的应用已经越来越广泛,包括办公软件、影视音频软件、游戏软件、具体功能软件等诸多应用领域。本文就Android系统上的一款媒体
8、播放器应用程序的设计与实现进行讨论。Android是一个开源的系统,它底层是基于Linux的操作系统。本论文的媒体播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,该播放器集播放、暂停、前进、后退、音量调节、亮度调节、上下选集等功能于一体,在Android系统中能独立运行。2.1、Android基本知识2.1.1 android多媒体系统介绍:(1)多媒体应用角度方面有两个内容:输入输出环节(音频、视频纯数据流的输入输出系统)中间处理环节(文件格式处理环节和编解码环节)(2)andro
9、id的多媒体核心:Open CoreOpen Core是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:PVPlayer:提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能PVAuthor:提供媒体流记录的功能,完成各种音频(Audio)、视频(Video)流的以及静态图像捕获功能PVPlayer和PVAuthor以SDK的形式提供给开发者,可以在这个SDK之上构建多种应用程序和服务。在移动终端中常常使用的多媒体应用程序,例如媒体播放器、照相机、录像机、录音机等等。2.1.2 android平台Android是一种以Linux为基础
10、的开放源码操作系统,主要使用于便携设备。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。在2014年Google I/O开发者大
11、会上Google宣布过去30天里有10亿台活跃的安卓设备,相较于2013年6月则是5.38亿。Android手机为何如此受青睐,主要是因为android的一些功能在吸引着大众。第一,智能虚拟键盘;第二,使用Widget实现桌面个性化;第三,用在线文件夹浏览在线数据;第四,视频录制和分享;第五,图片上传;第六,更快、更兼容的浏览器;第七,Voice Search语音搜索;第八,立体声蓝牙和免提电话;第九,强大的GPS技术;第十,android 系统硬件检测。2.1.3 Android的四大组件1. Activity顾名思义,Activity就是活动。应用程序必须至少包含一个Activity。Ac
12、tivity提供了一个虚拟的用户接口,每一个Activity都有一个默认的窗口可以用来显示用户界面,一般情况下,它是全屏的窗口。例如,影音播放软件的每个用户界面就是Activity。2. ServiceService与Activity的主要区别在于,Service是在后台活动的,它没有用户界面。典型的应用场景是,用户选择了一个播放列表开始播放后,离开了该用户界面(Activity),如果仍然希望视频不会暂停,就可以用Service去调用播放器,而不是在Activity中调用播放器。3. Broadcast Receiver在Android中,BroadcastReceiver 用于异步接收广播
13、Intent,每一个行为都可以抽象为一个Intent。可以简单地把Intent理解为一个包含了数据的消息。Intent可以用于启动一个Act-ivity或者Service,可以用于进程间的通信。事实上,应用程序的启动也是通过Intent实现的。4. ContentprovidersAndroid平台内置了一套SQLite数据储存机制,并包含一系列管理SQLiteDatabase的相关方法。在应用程序中,可以通过Contentprov-iders访问数据库。每个Contentprovider都定义了一系列的方法用于访问它对应的数据库。应用程序在新建数据库时也可以定义相应的Con-tentprov
14、ider用于向其他应用程序共享数据。一般情况下,应用程序不直接调用Contentprovider定义的函数,而是通过Content Resolver间接调用。这样设计的好处是一个Content Resolver可以访问任何的Contentprovider,统一了接口。2.1.4 开发工具EclipseEclipse的基础是富客户机平台(RichClientPlatform,即RCP)。RCP包括下列组件:核心平台(Eclipse,运行插件)标准集束框架(OSGi : Open Service Gateway initiative)可移植构件工具包(SWT : Eclipses Standard
15、 Widget Toolkit) JFace(文件缓冲,文本处理,文本编辑器) Eclipse采用的技术是IBM公司开发的SWT,这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件:不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其他所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基于内核包括:图形API(SWT/JFace),Java开发环境插件(JDT),插件开发环境(PDE)等。E
16、clipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。已有的分离的插件已经能够支持C/C+(CDT)、Perl、Ruby、Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。2.1.5 开发语言JavaJava是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Java编程语言的风格十分接近C+语言。继承了C+语言面向对象技术的核心,Java舍弃了C+语言中容易引起错误的指针,改
17、以引用取代,同时移除原C+与原来运算符重载,也移除多重继承特性,改用接口取代,增加垃圾回收器功能。Java不同于一般的编译语言和直译语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。2.2 播放器结构Android为应用开发者提供功能丰富的SDK,可以让开发者通过SDK实现千变万化的应用。一个Android应用从文件结构组成上通常由资源文件和源码文件组成,资源文件主要包括字符串,布局,图片,音频等
18、组成,源码文件主要包括Java文件和C语言的JNI文件。Android应用如果从源码逻辑上可以分为四大组件,一个应用会由四大组件或者其中几个组成,四大组件分别是Activity ,BroadcastReceiver, Service和Content Provider。一个Android应用从文件组成上就可以看出大概的结构,主要由源码文件、布局文件和资源文件组成。2.2.1 文件列表界面播放视频前需要先确定播放的是哪个视频,所以文件列表界面应该是进入应用的第一个界面,主要显示了可播放的视频文件列表,为了用户有良好的体验,在每个视频标题下显示文件的大小,并在右方显示视频的时长,并具有“更多”按钮。
19、为使用户易于操作,易于记忆,文件列表界面采用线性布局(LinearLayout)。在布局代码中TextView为文本显示视频的标题、视频的大小、视频的时长。播放列表为一个listview,文件列表及目录结构最适合使用listview去显示,listview的每一项由两部分组成,分别为图标和文件名,通过自定义的adapter将图标和文件名显示出来。图标是视频的缩略图,文件名就只获取当前列表中的文件,获取相应文件名显示出来。2.2.2 控制菜单控制菜单是用户最常用的界面,应该做到显示简洁,操作方便。控制菜单大体上可以分为两部分,上面是进度条,包括当前时间和总时间所示,用户可以在这里方便的看到当前进
20、度信息,当视频播放结束后弹出上下选集。 除了控制菜单,视频窗口和字幕都需要显示在这个界面的,由于视频是全屏的,所以字幕和控制菜单都显示在视频之上,有叠加的现象,所以这种情况就适合使用帧布局(FrameLayout),首先是一个全屏尺寸的VideoView,用来显示视频内容,VideoView在最低层;然后是一个线性布局(LinearLayout),用来显示字幕内容,位置默认在最下方;最后是一个线性布局(LinearLayout),里面用来显示控制菜单,在最上层显示。控制菜单是垂直方向的线性布局,显示进度条,包括当前时间和总时间。进度条是水平方向的线性布局,从左到右依次是当前时间,文本,进度条,
21、总时间文本。当用户拖动进度条时,当前时间应该按比例跳转。2.2.3 Toast模块此Toast模块是基于android系统的Toast控件封装,Toast是一种短暂的提示框,并不需要用户交互,也不会将焦点移过来,因此可以适合大多数的场景,向用户进行信息提示。进入应用后,Toast模块就己经完成初始化,创建Toast对象,设置显示时间,当需要信息提示时只需要将提示信息文本发送给Toast模块并使能,Toast模块就会显示提示信息并自动消失。 2.2.4 小结本设计了控制菜单、功能菜单和其他主要用户界面模块的界面、功能和布局方式。控制菜单主要实现了视频播放的控制,功能菜单让用户可以使用更多的视频效
22、果,Toast等其他模块让应用更丰富,用户体验更好。第3章 总结通过对Android手机平台的视频播放器开发前的学习,使我对Android视频播放器系统的整体设计有一个深入的了解,对整个流程也会有一个清晰的认识。开发Android视频播放器,要抓住开发的核心部分,视频播放器大体由播放主界面、播放列表组成。这两个个模块完成,视频播放器就能初具规模。而其它的功能都是在这两个模块的基础上去补充添加的,这是功能的确是必不可少的功能,否则就不具备视频播放器的基本功能了。视频播放器软件预计实现播放器的基本功能:播放,暂停、上/下选集、视频列表浏览等功能。运用的系统平台是现今最热门的Android系统,是一
23、个开源的基于Linux系统的手机平台。实现了视频播放器的系统编程。本次程序设计,对播放器的系统结构框架做了精心的构思与设计,采用主要开发工具是Eclipse+Java语言的支持,Android Development Tool的插件,和Android SDK 4.2版本的全面结合,才使整个视频播放器系统得以实现。在开发过程中我学到了一些经验:系统分析的好坏将决定着的系统开发成功与否,一份好分析设计将是成功开发主要因素。我们在着手开发之前不要急于编程,先应有较长的时间去把分析做好,写出相关的开发文档等。然后再开始编写程序代码,这样做到每写一步代码心底有数,有条不絮。还有后续的系统测试,要能灵活利
24、用各种软件测试模型,最大的优化软件。总之,经过一段时间的Android系统技术知识的学习和对视频播放器的构思与设计,使我对Android系统有了一定的了解,让我对Android系统上的开发流程和开发模式有了深入的了解,同时也对整个软件产品的实现流程有了一个深入的了解,这对我以后从事软件开发有很大的帮助。参考文献1 张孝祥.JAVA就业培训教程M.北京:清华大学出版社,2007.2 靳岩, 姚尚朗. Google Android开发入门与实战M. 人民邮电出版社,2009.3 高焕堂.Android应用框架原理与程序设计M. 清华大学出版社.2008.4 杨丰盛.Android应用开发揭秘M.机械工业出版社.2010