基于Android的视频播放器的设计与实现毕业论文.doc
《基于Android的视频播放器的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Android的视频播放器的设计与实现毕业论文.doc(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 基于Android的视频播放器的设计与实现毕业论文目 录中文摘要IABSTRACTII目 录III第一章 绪论11.1课题的来源与意义11.2 ANDROID发展现状与前景11.3项目的主要工作和解决的问题21.4系统设计的目标与基本思路31.5论文组织结构3第二章 ANDROID视频播放器相关技术介绍42.1 ANDROID介绍42.2 ANDROID开发平台与相关技术52.2.1 ANDROID-WINDOWS开发环境52.2.2 MEDIAPLAYER视频技术62.2.3 SURFACE、SURFACEVIEW、SURFACEHOLDER三者之间的关系9第三章 系统分析与系统结构设计与
2、实现113.1系统分析113.1.1系统可行性分析113.1.2 系统需求分析113.2系统结构设计12第四章 测试164.1测试环境和条件164.2测试164.3测试结果分析24结 论25参考文献26附 录2833 / 34 第一章 绪论1.1课题的来源与意义在这个信息化的时代, IT业已经成为世界发展的主流,我们对信息技术的依赖远远超过了对我们自己的依赖,计算机和手机已经成为我们日常生活中不可缺少的获得信息的渠道。正因为如此,各种各样的软件层出不穷,我们的生活也因为各种各样的软件变的更有滋有味。不缺乏娱乐性,也不缺乏教育意义,让我们从这些软件中受益匪浅,使我们看到了相比以前的巨大进步。同时
3、,随着科技的发展,计算机越来越精致,手机也越来越智能化,所以我们的依赖性也越来越大,越来越离不开这些给我们提供日常信息的工具。手机也已不再仅仅是简单的人与人通话的工具,而是在很大程度上成为了我们获取信息的一个更好的渠道。一个好的软件,能够标志一个手机品牌的地位。所以,开发一款好的手机软件是相当必要的。以前我们看电影,看视频,都要去电影院或者是影吧,而且时间有限,很不方便;而现在是在电脑上或者手机上看视频,看小说,文档等等。以此看来,一个好的手机视频播放器软件的开发是相当有必要的。作为集通讯与娱乐消费为一体的智能手机,播放器是其中一个必不可少的重要功能,一个贴近用户,方便用户的多功能的播放器也是
4、用户所渴望的,更是开发人员应当致力于的。随着Google推出的Android手机的不断更新换代,技术方面也日趋成熟,一个良好的视频播放器的设计与实现已经成为可能。目前,作为Android的手机用户而言,都有视频播放器的实体应用。但是,对于绝大多少而言,其界面单调,功能单一。比如,界面与其他非智能的手机没有大的区别,而功能上面,也就除了基本的播放控制流程之外,多上一个视频基本信息的显示,同时加上一个对预设定路径的播放列表的展示。因此,开发一款界面友好、炫丽、功能更多的视频播放器,更好的贴近用户,满足用户需求,其应用前景也是相当乐观的。1.2Android发展现状与前景Android是一种基于Li
5、nux的自由与开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导与开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商与电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑与其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市
6、场份额首次超过塞班系统,跃居全球第一。 2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。由此可见,Android占有非常可观的市场前景。具有开源特性的Android平台打破了之前Symbian、Windows mobile等操作系统收取高额授权费用的模式,使得智能手机成本大大的降低。而正是由于它开放源代码,使得手机产生更多个性化的应用。同时,合作方能够在这里得到利润或者创造价值,手机软件行业得到维护协调发展。以Google、苹果和诺基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联网的发展,这正是Google发布Android平台
7、的意义,也是Android平台存在的使命所在。作为Android平台成员之一的中国移动也投资成立了一家通讯公司,专门从事G oogle手机软件的应用以与本地化的软件的开发,比如将在Google手机平台上添加飞信、 输入法等一系列符合国用户使用特色的功能。国众多企业也将眼光投入到Android上面,并启动了相关的计划来深入的理解并发展Android。更多的手机软件开发企业已经或者筹备着将公司进行转型,从其他方向的开发转向到Android的开发。由此可见,无论是在国还是在国外,Android平台对手机软件行业和移动手机平台 将发挥极大地推动作用,而在未来的几年时间里,Android将越发的凸显自己
8、的重要性1。目前国的Android开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通用应用(放到Android Market或者其他App Market销售)以与游戏开发(放到Android Market或者其他App Market销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种:为国外公司进行外包开发,或者通过Google的移动广告(AdMob)通过广告点击分成。而理论上的通
9、过付费下载的形式来盈利的,现在国鲜见成功者。第三类开发者,目前和第二类开发者类似3。1.3项目的主要工作和解决的问题本课题的研究目的就是要通过对基于Android的多功能视频播放的系统设计与实现,探讨该系统的实现过程,以有效满足Android手机用户在视频播放中常见的需求。本课题的主要容为:(1)根据对Android手机视频播放器功能的了解和分析,从功能和实用的角度出发,设计并实现Android视频播放器;(2)对Android视频播放器进行模块划分;(3)对各模块分析并设计、实现;(4)从功能多样性角度考虑,尽可能添加一些附加的设计方案并实现。1.4系统设计的目标与基本思路本次毕业设计使用E
10、clipse + ADT插件 + DDMS插件搭建的Android开发平台环境,开发语言为Java语言。需要开发出基于Android平台的视频播放器应用程序,并能够在Android手机上运行。基本思路介绍如下:第一步:程序运行时进入主Activity,通过更新或查看文件列表,选择一个视频文件;第二步:读入视频文件,调用Mediaplayer.setDataSource()方法设置文件路径,并通过Mediaplayer.prepare()方法将Mediaplayer对象置为准备状态;第三步:调用Mediaplayer.start()方法播放视频,此时可以调节音量、进度,暂停播放,重置播放等等操作
11、;第四步:播放完成后,Mediaplayer对象进入了PlaybackCompleted状态,此时可以选择其他视频文件进入下一个视频的播放或者退出程序。1.5论文组织结构本文主要由:中英文摘要、目录、绪论、课题相关技术介绍、系统可行性分析、系统需求分析、程序实现、测试、完毕语、参考文献、致谢语以与附录构成。第一章绪论主要分析和介绍背景、课题主要研究的问题以与系统设计的目标与基本思路。第二章主要介绍课题的相关技术。第三章是系统分析以与系统功能的设计与实现,其中包括系统可行性分析和系统需求分析。第四章是程序测试和结果的分析与研究等。最后对全文进行了总结和展望,附录部分为主要功能的函数源代码。第二章
12、 Android视频播放器相关技术介绍2.1 Android介绍Android是“机器人”的意思,是Google公司于2007年11月5日发布的一个机遇Linux平台的开源手机操作系统。该系统由底向上一共分为了4层,如图2-1。每一层对把底层实现封装,并提供调用接口给上一层。 图2-1 Android系统架构 (1) Linux核(Linux Kernel)。Android运行在Linux Kernel2.6之上,但是把Linux核GNU协议约束的部分做了取代。这样,运行在Android上的程序可以用于商业目的。Linux核是硬件和软件层之间的抽象层。 (2) 中间件。中间件包括两部分:核心库
13、和运行时环境(Libraries & Android Runtime)。核心库包括,SurfaceManager,显示系统管理库,负责把2D或3D容 显示到屏幕;MediaFramework,媒体库,负责支持图像,支持多种视频和音频的录制和回放;SQLite,数据库,一个功能十分强大的轻量级嵌入式关系数据库;WebKit浏览器引擎等。运行时环境主要包括一个Dalvik Virtual Machin,Dalvik虚拟机,区别于Java虚拟机的是,每一个Android应用程序都在自己的进程中运行,都有一个属于自己的Dalvik虚拟机,这一点可以让系统在运行时可以达到优化,程序间的影响大大降低。Da
14、lvik虚拟机并非运行Java字节码,而是运行自己的字节码。 (3)应用程序框架。丰富而又可扩展性的视图(View),可以用来构建应用程序,它包括列表(List),网格(Grids),文本框(Textboxs),按钮(Button),可嵌入的Web浏览器等。容提供者(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享他们各自的数据。资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(LayoutFiles)。通知管理器(Notification Manager)使得应用程序可以在状态栏中显示自
15、己定义的提示信息。活动管理器(Activity Manager)用来管理应用程序的生命周期,并提供常用的导航回退功能。 (4)应用程序。Android系统会置一些应用程序包,包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理器等等。Android应用程序由强大的Java语言来编写,也支持其他一些语言如C、Perl等。其中Java应用最为广泛,其他语言已经就看不到了4。2.2 Android开发平台与相关技术2.2.1 Android-Windows开发环境(1) JDK1.6.0_16:JDK(Java Development Kit)是Sun Microsystems针对
16、Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。没有JDK的话
17、,无法编译Java程序10。(2) Eclipse-SDK-3.6.2-win32:Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)10。 (3) Android-SDK:SDK(software development kit)称为软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,Android SDK 指的是Andr
18、oid专属的软件开发工具包。(4) ADT_16:Android Development Tools-安卓开发工具。目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具2。(5) AVD:AVD的全称为:Android Virtual Device,就是Android运行的虚拟设备,他是Android的模拟器识别。建立的Android要运行,必须创建AVD,每个AVD上可以配置很多的运行项目。创建AVD的方法有两种。一是通过eclipse 开发环境,
19、二是通过命令行创建5。2.2.2 Mediaplayer视频技术在Android系统中,最简单、最常用的视频技术是Mediaplayer接口 ,通过此接口可以播放指定的音频和视频文件,另外也可以通过VideoView来播放视频,虽然VideoView比Mediaplayer简单易用,但定制性不如Mediaplayer,要视情况选择。Mediaplayer播放音频比较简单,但是要播放视频就需要SurfaceView。SurfaceView比普通的自定义View在绘图上更有优势,它支持完全的OpenGL ES库。Mediaplayer能被用来控制音频/视频文件或流媒体的回放,可以在VideoVie
20、w里找到关于如何使用这个类中的方法的例子。使用Mediaplayer时限音频和视频播放的基本步骤,首先生成Mediaplayer对象,根据播放文件从不同的地方使用不同的生成方式;得到Mediaplayer对象后,根据实际需要调用不同的方法,如start()、stop()、pause()、release()等。需要注意的是,在不需要播放的时候要与时释放掉与Mediaplayer对象相连接的播放文件7。图2-2显示了一个Mediaplayer对象被支持的播放控制操作驱动的生命周期和状态。椭圆标识代表Mediaplayer对象可能主流的状态。由一个箭头开始的弧线代表同步的方法调用,而以双箭头开头的弧
21、线代表异步调用方法。通过图2-2可以知道一个Mediaplayer对象有如下状态。当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态。当调用了release()方法后,它就处于End状态。这两种状态之间的时间是MediaPlayer对象的生命周期。在一个新构建的MediaPlayer对象和一个调用了reset()方法的MediaPlayer对象之间有个微笑但十分重要的差别。在Idle状态时,调用getCurrentPosition()、getDuration()、getVideoHeight()、getVideoWidth()、setA
22、udioStreamType(int)、setLooping(boolean)、setVolume(float,float)、pause()、start()、stop()、seekTo(int)、prepare()或者是prepareAsync()方法都是编程错误。当一个MediaPlayer对象处于刚被创建的时候,部的播放引擎和对象的状态都没有改变,在这个时候调用以上方法,框架将无法回调客户端程序注册的OnErrorListener.onError()方法;但若这个MediaPlayer对象调用了reset()方法之后,再调用以上方法,部的播放引擎就会回调客户端注册的OnErrorListe
23、ner.onError()方法,并将错误的状态传入。图2-2 Mediaplayer对象状态所以,一旦一个MediaPlayer对象不再被使用,应立即调用release()方法来释放咋部的播放引擎中与这个MediaPlayer对象关联的资源。资源可能包括如硬件加速组件的单态组件,若没有调用release()方法可能会导致之后 dMediaPlayer对象实例无法使用这个单态硬件资源,从而运行失败。一旦MediaPlayer对象进入了End状态,它不能再被使用,也没有方法迁移到其他状态8。此外,使用new创建的MediaPlayer对象处于Idle状态,而那些通过重载的create()便利方法创
24、建 的MediaPlayer对象却不是处于Idle状态。事实上,如果成功调用了重载的create()方法,那么这些对象已经是处于Prepare状态了。在一般情况下,由于种种原因,一些播放控制操作可能会失败,如不支持视频格式,缺少隔行扫描,分辨率过高,流超时等等。因此,错误报告和回复在这种情况下是非常重要的。有时,由于编程的错误,在处于无效状态的情况下调用了一个播放控制操作可能发生。在所有可能的错误条件下,部的播放器引擎会自动的调用一个由程序自身所提供的OnErrorListener.onError()方法。程序可以通过调用Mediaplayer.setOnErrorListener()方法来注
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 视频 播放 设计 实现 毕业论文
限制150内