1、 I 基于 Android 的多功能视频播放器的系统设计与实现 摘 要: 如今,随着基于 android 的智能手机的兴起,一款具有个性化的多功能播放器是消费者的一个主要需求。因此,设计一个基于 android 手机的多功能播放器,具有重要的实际意义。 遵循软件工程规范,文中主要介绍了 基于 android 的多功能视频播放器的设计和实现过程, 实现了手机中视频文件的过滤读取、存储、播放、收藏等功能。同时简单的实现了 实时流协议 RTSP(Real Time Streaming Protocol)网 上视频流的播放功能。选用的开发环境是基 于 Eclipse和 Android ADT 的 Ja
2、va 编写代码,使用了具有 信息缓冲的 surface view 控件、美化界面布局的 Android Activity和存放数据的数据库 SQLite。 关键词 : Android;多功能播放器; 实时流协议 II Design and Implementation of Multi-functional Video Player Based-on Android ABSTRACT: Nowadays, with the development of the smart phone based on android, a multi-functional and personalized p
3、layer is a major demand of consumers. Therefore, it is of important and practical significance to design a multi-functional mobile phone player based on android. Following the specification of software engineering , the paper mainly introduces the design and implementation process of the multi-funct
4、ional video player based on android and realizes the cell phone video files in the filtering read, storage, broadcast, collection and other functions.Meanwhile,it simply realizes the function of playing RTSP online video stream.Under the environment of the Eclipse and Android ADT in JAVA code,it use
5、s the surface view control with the message buffer , Android Activity with landscaping interface layout and database SQLite to store data. Keywords: Android; Multi-functional Player; Real Time Streaming Protocol 1 目 录 1. 绪论 . 1 1.1 课题背景 . 1 1.2 Android Player 的发展概况 . 1 1.3 项目的主要工作和解决的问题 . 1 2. 基于 An
6、droid 的多功能视频播放的 系统 分析 . 3 2.1 系统的可行性分析 . 3 2.2 系统的需求分析 . 3 3. 基于 Android 的多功能视频播放的系统 设计 . 9 3.1 系统的开发环境 . 9 3.2 系统功能模块的设计 . 11 3.3 系统数据库设计 . 12 4. 基于 Android 的多功能视频播放的系统 实现 . 16 4.1 数据库管理 . 16 4.2 UI 界面的实现 . 18 4.3 智能搜索模块 的实现 . 18 4.4 本地文件列表模块的实现 . 23 4.5 网络文件获取 模块的实现 . 24 4.6 所有文件列表模块的实现 . 25 4.7 历
7、史播放列表模块的实现 . 24 4.8 收藏喜爱列表模块的实现 . 24 4.9 基本播放控制模块的实现 . 26 5. 总 结 . 29 参考文献 . 28 1 1 绪论 1.1 课题背景 作为集通讯与娱乐消费为一体的智能手机,播放器是其中一个必不可缺的重要功能,一个贴近用户,方便用户的多功能的播放器也是用户所渴望的。 随着 Google 推出的 Android 手机的不断更新,技术上面也趋于成熟,一个好的视频播放器的设计成为可能。 目前,作为 Google 的手机用户而言,都有视频播放器的实体应用。但是,对于绝大多少而言,其界面单调,功能单一。比如, 界面与其他非智能的手机没有大的区别,而
8、功能上面,也就除了基本的播放控制流程之外,多上一个视频信息的显示,同时加上一个对预设定路径的播放列表的展示。 然而这个已经满足不了当前消费者的需求。加上,由于目前 WiFi 局域网的流行,手机网上冲浪越来越方便,也越来越实惠,作为一款手机播放器,如果不能获取网上的视频流,我想这个播放器也就 out 了。如何实现网上视频流的获取并播放,这个新的功能必将得到更多的用户的青睐。 所以,做一个界面友好,炫丽,功能更多的视频播放器,其前景也是很乐观的。 1.2 Android Player 的发展概况 当各个厂商售卖的不同版本中的 Android 的智能手机中,都有内置的视频播放器。但是其功能简单,界面
9、单一,也就使得一些 Android 的开发者萌发出开发出自己的界面绚丽,功能更多的播放器。 1.3 项目的主要工作和解决的问题 本课题的研究目的就是要通过对基于 Android 的多功能视频播放的系统设计与实现,探讨该系统的实现过程,以有效满足 Android 手机用户在视频播放中常见的需求。本课题的主要内容为 : 1 通过对 Android 手机的视频播放功能的分析,从功能和实用的角度进行用户需求分析。 2 在需求 分析的基础上,进行系统设计并且模块做出合理的划分。 2 3 给出 Android 手机播放器的设计和实现过程,详细描述了本人在项目中的一些关于播放限控制和数据存储的设计思想。 4
10、 针对播放器功能的多样性,在系统中扩展一些附加的设计方案并实现。 3 2. 基于 Android 的多功能视频播放的系统分析 2.1 系统的可行性分析 可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的实时 调查得出以下四点的可行性分析: ( 1) 技术可行性: Eclipse + Android ADT 的技术已经较为成熟,通过 SUN公司(现被 ORCEL 公司收购)推出的跨平台、动态的 JAVA 语言进行开发。 ( 2) 运行可行性:该系统需要
11、 Android 虚拟机环境, Eclipse 中安装 ADT,DDMS 等 Google Android 相关插件。其运行环境已经相当稳定,它功能丰富,包括了完备的 Android 程序的编码、调试、测试和发布功能,其中支持所有 Android应用开发相关技术,包括 SQLite, Skia, 3D 制作, Android XML,能够很好的发布 Android 的应用程序 APK 包。 ( 3)法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。 通过以上的可行性分析,将采用 Eclipse+Android ADT + DDMS 技术,运用JAVA 语言进行系统的开发。 2
12、.2 系统的需求分析 2.2.1 系统设计的目标 根据分析需求,这个系统必须实现以下的功能: (1) 实现手机支持的视频格式文件的播放功能。 作为播放器,其核心就是能够流畅的播放视频文件。手机一般不会支持对解码要求太高的格式,如 rmvb。作为手机硬件能够承载的视频流文件 ,都能够流畅的播放。 (2) 能够在手机里面定位视频文件。 在本播放器设计中,一个亮点就是自定义一个文件列表,能够访问手机里面任何能够进入的文件。这样,也就能够不需要将视频文件放在一个系统固定的位4 置,您可以自己新建一个存放视频文件的文件夹,放在任何你想要放的地方。这样,需要播放你认识的文件的时候,直接定位再好不过! 这里
13、,就是实现这样一个能够直接定位视频文件的功能,能够对其进行相关的播放相关的控制相应。如直接播放,查看详情,加入收藏夹等。 (3) 能够智能搜索出所有 android sdcard 中的视频文件。 做视频的智能搜 索,也是能够快速定位位于 sdcard 中的视频文件的另一个快捷的方法。 在智能搜索设计中,通过 mediascanner 进行 sdcard 中的所有视频文件的扫描。所有扫描的出来的文件信息进行数据库存储,方便下次读取。同时,将其显示到界面,在其中设计一个搜索框,能够通过文字的匹配快读定位到相应的文件。 一般,这个方式是手机中存放的视频文件过多,不晓得要播放文件的具体位置,或者,只记
14、得其名字中几个字符。这样定位会很快。 (4) 能够对视频文件信息进行读取,存储。 对视频文件的存储,读取主要是通过 SQLite。 SQLite,是 一款轻型的数据库,是遵守 ACID 的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百 K 的内存就够了。 对视频文件信息的读取,存储,主要是用来对文件信息查询,以及后面对视频文件的播放记录的读取,再次播放,收藏进行关联操作。方便视频文件信息的再次读取。 (5) 对播放文件列表的记录。 文件列表包括历史播放记录列表,所有视频文件列表,收藏文件夹列表。 播放文件
15、列表的设计,主要是方便用户观察哪些文件是已经播放,那些比较好,需要收藏,方便再 次观看,同时,方便用户直接点击播放列表中的文件来进行快速播放。 (6) 网络视频流的实时播放。 这里的功能是能够对网上有些实时视频流文件进行实时播放。当然现定于RSTP 协议。 2.2.2 系统设计的特点 5 和 Android 自带的播放器相比,此播放器的特点是: (1) 更炫的界面。 (2) 能够直接定位到 sdcard 中的文件,进行播放。 (3) 通过搜索,能够快速定位到想要播放的文件。 (4) 通过播放列表的记录,对播放的视频文件进行了更加详细的记录。 (5) 通过 RTSP 协议,能够播放实时视频流文件
16、。 2.2.3 系统开发的设计思想 该播放器设计上面分为两个 部分,一个是播放以及其过程的流程控制,一个是通过数据库对播放文件的存储,读取。 在视频的播放以及其过程的流程控制中,主要是注重于文件在播放过程中可能存在的状态,比如暂停,停止,列表中的上个视频文件,下个视频文件,当前视频文件的某个指定的时间戳上面。 在通过数据库对播放文件的存储,读取过程中,主要注重于手机 sdcard 中的所有文件的操作。其中需要涉及到的有三个播放列表,已播放列表,所有视频播放列表,收藏夹列表。 在视频文件的播放,以及播放文件的存储读取时具有交互操作的,比如,当用户在播放过程中,文件需要加入到 数据库中的存放已播放
17、文件列表的表中。同时,可以通过读取数据库中记录的视频文件,进行直接读取播放。 2.2.4 系统的用例分析 (1) 视频基本播放用例如图 2.1 所示。 图 2.1 视频基本播放用例图 用户 播放 暂停 停止 上一个 /下一个 时间戳 全屏 /普平 退出播放 6 视频播放用例主要用来描述视频文件是否能够正常播放,具体说明如表 2.1所示。 表 2.1 视频播放用例说明 描述要素 描述内容 用例名称 视频播放 用例描述 用户点击播放控件 参与者 用户 前置条件 视频进入播放状态 后置条件 选中的视频播放 视频暂停用例主要描述处于播放状态中的视频文件是否能够正常暂停,具体说明如表 2.2 所示。 表
18、 2.2 视频暂停用例说明 描述要素 描述内容 用例名称 视频暂停 用例描述 1.视频处于播放状态 2.点击暂停按钮 3.视频进入暂停状态 参与者 用户 前置条件 视频正在播放 后置条件 当前播放视频处于暂停 视频停止用例主要用来说明处于播放或者暂停状态的视频文件是否能够停止当前播放,具体说明如表 2.3 所示。 表 2.3 视频暂停用例说明 描述要素 描述内容 用例名称 视频停止 用例描述 1.视频处于正常播放,或者处于 暂停状态 2.点击停止按钮 3.当前视频停止播放 参与者 用户 前置条件 视频处于正常播放,或者处于暂停状态 后置条件 视频停止播放 7 视频全屏 /普屏用例主要说明当前处
19、于播放状态的视频界面能否正常实现全屏,普屏,具体说明如表 2.4 所示。 表 2.4 视频全屏 /普屏用例说明 描述要素 描述内容 用例名称 视频全屏 /普屏 用例描述 1.当前处于播放状态 2.双击正在播放的视频界面 3.当前处于全屏,双击变为普屏,当前为普屏,双击变为全屏 参与者 用户 前置条件 视频进入播放状态 后置条件 选中的视频播放根据当前状态变 为全屏,或者普屏 播放器上一个 /下一个用例主要实现当前播放列表中能否播放上一个 /下一个文件,具体说明如表 2.5 所示。 表 2.5 播放器上一个 /下一个用例说明 描述要素 描述内容 用例名称 上一个 /下一个 用例描述 1. 用户单击上一个 /下一个的按钮 2. 播放器播放当前播放列表的上一个或者下一个视频文件 参与者 用户 前置条件 视频进入播放状态 后置条件 选中的视频播放 (2) 播放器扩展用例是为了更好的实现友好播放功能,对播放的视频文件进行人性化管理,建立文件定位列表,智能搜索,播放记录, 如图 2.2 所示。 图 2.2 播放器扩展用例图 用户 文件定位列表 智能搜索 播放记录列表