Android平台的音乐视频播放器论文35208.doc

上传人:小小飞 文档编号:26386 上传时间:2018-10-29 格式:DOC 页数:49 大小:3.86MB
返回 下载 相关 举报
Android平台的音乐视频播放器论文35208.doc_第1页
第1页 / 共49页
Android平台的音乐视频播放器论文35208.doc_第2页
第2页 / 共49页
Android平台的音乐视频播放器论文35208.doc_第3页
第3页 / 共49页
Android平台的音乐视频播放器论文35208.doc_第4页
第4页 / 共49页
Android平台的音乐视频播放器论文35208.doc_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《Android平台的音乐视频播放器论文35208.doc》由会员分享,可在线阅读,更多相关《Android平台的音乐视频播放器论文35208.doc(49页珍藏版)》请在三一文库上搜索。

1、I 毕 业 论 文(设计) 论文(设计)题目 基于 Android 平台的音乐视频播放器 II 摘 要 Android 是一种以 Linux 为基础的开放源码操作系统,它包括操作系统、用户界面和 应用程序、移动电话所需的全部软件,而且不存在任何以往阻碍移动产业的专有权障碍, Android 主要使用于便携设备,网络中各种接口为广大用户、开发者提供了更优的开发、 使用环境。 本论文的音乐视频播放器采用了 Android 开源系统技术,利用 Java 语言和 Eclipse 编 辑工具编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,该 音乐播放器部分集播放、暂停、上一首、下一首

2、、歌词显示、歌手照片等功能于一体, 视频播放器方面集播放、暂停、快进、快退于一体,性能良好,在 Android 系统中能独立 运行。该播放器还拥有对手机中多媒体文件的自动扫描功能、歌曲播放模式设置。 本播放器只限于应用层程序的探讨,主要考虑运行效率及用户体验,不包含对底层 多媒体文件解析的研究。 关键词:Android;开源系统;linux;音乐播放;视频播放 III Abstract IV 目 录 ABSTRACT III 第一章 绪论 .1 1.1 课题的来源 .1 1.2 课题的研究目的及意义 .1 1.3 课题主要研究的问题 .2 1.4 相关技术介绍与应用 .2 1.41 MVC 设

3、计思想运用于 Android 开发 2 1.42 Android 简介 2 1.43 Android 基本框架(Android Architecture) 3 1.44 Android 四大组件 5 第二章 需求分析 .7 2.1 可行性分析 .7 2.1.1 经济可行性 .7 2.1.2 技术可行性 .7 2.1.3 操作可行性 .7 2.2 软件功能分析 .7 2.3 目标系统逻辑模型 .8 2.3.1 系统运行环境 .8 2.3.2 播放器的基本控制需求 .8 2.3.3 播放清单列表管理需求 10 2.3.4 播放友好性需求 12 2.4 系统性能需求 12 2.5 运行环境需求 13

4、 第三章 概要设计 14 3.1 设计策略 14 3.2 系统结构设计 14 3.2.1 软件总体结构 14 3.2.2 系统模块划分 15 3.2.3 程序流程图 15 3.3 数据库及字段属性设计(以音乐播放器为例) 16 3.3.1 数据库结构 16 3.3.2 数据库连接 .18 3.3.4 数据库更新 .18 第四章 系统详细设计与实现 19 V 4.1 前台功能模块分析 19 4.1.1 音乐相关界面设计 .19 4.1.2 视频播放相关界面设计 .22 4.2 后台数据库交互功能模块分析 24 4.2.1 数据库连接 .24 4.2.2 数据库操作 .24 4.3 多媒体文件播放

5、模块分析 25 4.3.1 音频文件播放: .25 4.3.2 视频文件播放: .27 4.4 系统时序图 28 4.5 系统特点 29 第五章 测试过程 30 5.1 术语和缩写词 30 5.2 测试环境 30 5.3 测试结果 31 5.4 播放器功能测试 31 结 论 .33 参考文献 .34 致 谢 .35 附 录 36 1 第一章 绪论 1.1 课题的来源 Android 是一种以 Linux 为基础的开放源码操作系统,它包括操作系统、用户界面和 应用程序、移动电话所需的全部软件,而且不存在任何以往阻碍移动产业的专有权障碍, Google 通过和运营商、设备制造商、开发商和其他有关各

6、方组成申城次的合作伙伴关系, Google 与手机联盟一起开发了 Android,其中包括中国移动、中国联通、 HTC,摩托罗拉、 高通、T-Mobile 、索尼爱立信等三十多家企业。希望借助建立标准化、开放式的移动电话 软件平台,在移动产业内形成一个开放式的生态系统。 作为谷歌企业战略的重要组成部分,Android 将进一步推进“随时随地为每个人提供 信息”这一企业目标的实现。全球为数众多的移动电话用户正使用基于 Android 的各种 的移动设备,谷歌的目标是让移动通讯不依赖于设备甚至平台。出于这个目的,Android 将补充。 现今社会生活紧张,而听音乐、看电影是其中最好的舒缓压力的方式

7、之一,本项目 的目的是开发一个可以播放主流音乐文件格式、基本视频格式的播放器,实现的主要功 能是播放 Mp3,Wav 多种格式的音乐文件,并且能够控制播放 3gp 格式电影,两种播放模 式分别实现暂停,停止,上一曲,下一曲,播放列表和歌曲循环模式,界面简明,操作 简单。 1.2 课题的研究目的及意义 通过研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有 各的播放特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点, 编写出功能实用,使用方便快捷的播放器。目前已经实现的功能有能播放常见音频文件 的功能,如 MP3、WAV、3GP 等,拥有播放菜单,能选择播放清

8、单,具备一般播放器的 功能,如快进,快退等。音乐播放模式也比较完善,有单曲,顺序,循环,随机播放等 模式。 本项目是一款基于 Android 手机平台的音乐视频播放器,使 Android 手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于 音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练 Android 的技术和 其它在市场上的特点 2 1.3 课题主要研究的问题 目前在 Android 手机、平板电脑中,所使用的多媒体播放工具大多是音乐视频相分 离,对于手机用户来说不得不安装两种应用程序,浪费手持设备的资源并影响。因此有 必要开发为 A

9、ndroid 用户提供支持多种格式并支持音频视频播放的软件,因此有以下几 个方面需要深入研究: 1、从理论的角度判断开发基于Android平台的音乐视频播放器是否可行? 2、从实践上,如何提高界面操作的正确性和友好性,如何分析程序逻辑的正确性? 3、当sd卡中包含大量视频、音频文件时,如何提高检索效率? 4、用户数据与Android数据库信息的交互如何解决? 5、如何提高播放器在系统中的资源利用率? 6、如何减少甚至删除软件自身数据库而是用系统数据库提高效率? 1.4 相关技术介绍与应用 本次毕业设计中运用了目前主流的 Android 设计技术,使用传统 MVC 开发模式。 1.41 MVC

10、设计思想运用于 Android 开发 该设计模式是“Model-View-Controller”的缩写,中文翻译为“模型-视图-控制器” 。 它由这三个部分组成 Event、Controller 、Model 或 View。Event( 事件)导致 Controller 改变 Model 或 View,或者同时改变两者。只要 Controller 改变了 Models 的数据或者属性,所 有依赖的 View 都会自动更新。类似的,只要 Controller 改变了 View,View 会从潜在的 Model 中获取数据来刷新自己。 而在 Android 软件开发中,MVC 设计思想依然可以使用

11、并且在很大程度上提高代码 编写效率以及执行效率,Xml 前台页面以及资源文件即为 View,Activity 即为 Controller,工具类即为 Model。 1.42 Android 简介 Android 一词的本义指“机器人” ,同时也是 Google 于 2007 年 11 月 5 日宣布的基于 Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软 件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 Android 是基于 Linux 内核的软件平台和操作系统,早期由 Google 开发(在华注册商 标名为“安致” ) ,后由开放手机联盟(O

12、pen Handset Alliance)开发。它采用了软件堆层 3 (software stack,又名以软件叠层)的架构,主要分为三部分。低层以 Linux 内核工作为 基础,只提供基本功能;其他的应用软件则由各公司自行开发,以 Java 作为编写程序的 一部分。另外,为了推广此技术,Google 和其它几十个手机公司建立了开放手机联盟。 Android 在未公开之前常被传闻为 Google 电话或 gPhone。大多传闻认为 Google 开发的是 自己的手机电话产品,而不是一套软件平台。到了 2010 年 1 月,Google 开始发表自家品 牌手机电话的 Nexus One。目前最新

13、 SDK 版本为 Android 4.0.3。 1.43 Android 基本框架(Android Architecture) 图 2.1 Android Architecture (1) Applications Application Android 会同一个核心应用程序包一起发布,该应用程序包包括 email 客 户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都 是用 JAVA 编写的。 (2) Application FrameWork 开发者完全可以访问核心应用程序所使用的 API 框架。该应用程序架构用来简化组 件软件的重用;任何一个应用程序都可以发

14、布它的功能块并且任何其它的应用程序都可 以使用其所发布的功能块(不过得遵循框架的安全性限制) 。该应用程序重用机制使得组 建可以被用户替换。 所有的应用程序都由一系列的服务和系统组成,包括: 4 可扩展的视图(Views )可以用来建应用程序,包括列表(lists) ,网格(grids) , 文本框(text boxes) ,按钮( buttons) ,甚至包括一个可嵌入的 web 浏览器 内容管理器(Content Providers )使得应用程序可以访问另一个应用程序的数据 (如联系人数据库) ,或者共享它们自己的数据。 资源管理器(Resource Manager)提供非代码资源的访问

15、,如本地字符串,图形, 和分层文件(layout files ) 。 通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信 息。 活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回 退功能。 (3) Libraries 库 Android 包括一个被 Android 系统中各种不同组件所使用的 C/C+ 库集。该库通过 Android 应用程序框架为开发者提供服务。以下是一些主要的核心库: 系统 C 库- 一个从 BSD 继承来的标准 C 系统函数库( libc ) ,专门为基于 embedded linux 的

16、设备定制。 媒体库- 基于 PacketVideo OpenCORE;该库支持录放,并 且可以录制许多流行的音频视频格式,还有静态印像文件包括 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 Surface Manager - 对显示子系统的管理,并且为多个应用程序提供 2D 和 3D 图层的无缝融合。 LibWebCore - 一个最新的 web 浏览器引擎用来支持 Android 浏 览器和一个可嵌入的 web 视图。 SGL - 一个内置的 2D 图形引擎 3D libraries - 基于 OpenGL ES 1.0 APIs 实现;该库可以使用硬件 3D

17、 加速(如果可用)或者使用高度优化的 3D 软加速。 FreeType - 位图(bitmap )和向量(vector)字体显示。 SQLite 一个对于 所有应用程序可用,功能强劲的轻型关系型数据库引擎。 (4) Android Runtime Android 包括了一个核心库,该核心库提供了 JAVA 编程语言核心库的大多数功能。 每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟 机实例。Dalvik 是针对于同时高效地运行多个 VMs 来实现的。Dalvik 虚拟机执行.dex 的 Dalvik 可执行文件,该格式文件针对最小内存使用做了优化。

18、该虚拟机是基于寄存器的, 所有的类都经由 JAVA 汇编器编译,然后通过 SDK 中的 dx 工具转化成.dex 格式由虚拟 机执行。 Dalvik 虚拟机依赖于 linux 的一些功能,比如线程机制和底层内存管理机制。 (5) Linux 内核 Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 5 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。未 来发展 老牌智能手机软件平台制造商 Symbian 发言人则表示:Google 的 android 只不过 是另一个 linux,symbian 对其它软件与其形成的

19、竞争并不感到担心。除了北美之外, Symbian 在其它地区智能手机市场都占有大部分市场份额。 与 iPhone 相似,Android 采 用 WebKit 浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看 电子邮件、搜索网址和观看视频节目等,比 iPhone 等其他手机更强调搜索功能,界面更 强大,可以说是一种融入全部 Web 应用的单一平台。 但其最震撼人心之处在于 Android 手机系统的开放性和服务免费。Android 是一个对 第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了 iPhone 等只能添加为数不多的固定软件的枷锁;同时与 Wi

20、ndows Mobile、Symbian 等厂 商不同,Android 操作系统免费向开发人员提供,这样可节省近三成成本。 Android 项 目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。谷歌移动平 台主管安迪鲁宾(Andy Rubin)表示,与软件开发合作伙伴的密切接触正在进行中。从去 年 11 月开始,谷歌开始向服务提供商、芯片厂商和手机销售商提供 Android 平台,并组 建“开放手机联盟” ,其成员超过 30 家。市场前景 Google 手机于 08 年 10 月 22 日正式 上市,与运营商捆绑的合约价为 179 美元(约合人民币 1200 元),现有的 T-

21、Mobile 用户可 以通过网络订购。在 10 月 22 日发布当天,将有 22 个国家和地区可以买到谷歌手机。在 11 月,将增至 27 个国家和地区。 1.44 Android 四大组件 Android 系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可 见的,有些是不可见的视图,像 Activity,ContentProvider 是可见的视图,Service 和 BroadcastReceiver 是不可见的,它们只在系统的后台运行。下面分别介绍四大组件: (1) Activity 简介 在 Android 系统中 Activity 提供可视化的用户界面,一个 Andr

22、oid 应用通常由多个 Activity 组成。多个 Activity 组成了 Activity 栈(Stack ) ,当前活动的 Activity 处于栈顶。 Activity 有自己的生命周期,由 Android 系统来控制。 (2) Service 简介 顾名思义 Service 就是运行在后台的一种服务程序,一般很少和用户交互,因此没有 可视化界面定义一个 Service 类比较简单,只要继承 Service 类,实现其生命周期中的方 法就可以了。一个定义好的 Service 必须在 AndroidManifest.xml 配置文件注册,通过 元素声明才能使用 .Service 有自己

23、的生命周期,我们可以调用 startService()启动 一个 Service 或者 bindService()方法来绑定一个存在的 Service (3) Broadcast Receiver 简介 6 Broadcast Receiver 顾名思义广播接收器,它和事件处理机制类似,只不过事件处理 机制是程序组件级别的(例如,某个按钮的单击事件) ,而广播事件处理机制是系统级别 的。到目前为止我们可以使用 Intent 来启动一个程序组件,我们还可以通过使用 sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程 序中实现 Broadcast Rec

24、eiver 来监听和响应这些广播的 Intent (4) ContentProvider 简介 Content Provider 用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。 它是跨应用程序共享数据的唯一方法。 Android 为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的 Content Provider。它们被定义在 android.provider 包下面。通过这样定义好的 ContentProvider 我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也 可以自己来定 ContentProvider 共享我们的数据,方便用户的访问。 7 第二章

25、 需求分析 在任何软件的开发过程中,需求分析都是十分重要的环节。对于 Android 开发来说 也是如此,实践表明,需求分析工作所做的程度,在很大程度上决定了软件的成败。系 统分析的任务是:通过问题识别、可行性分析、详细调查、系统化分析、最终完成新系 统的逻辑方案设计,或称逻辑模型设计。逻辑方案解决“做什么”问题,是需求分析的 任务。下面将就音乐视频播放器是否可行来进行分析。 2.1 可行性分析 可行性分析的任务是明确开发应用项目的必要性和可行性。必要性来自实现开发任 务的迫切性,而可行性则取决于实现应用系统的资源和条件。这项工作建立在前面初步 调查的基础上。 2.1.1 经济可行性 由于本次

26、设计中所采用的开发工具均为开源产品,无费用需求;如软件不发布则需 要申请 Android 市场签名权限 20 美金。所以本次开发不需要任何经费支出。 2.1.2 技术可行性 对于 Android 操作系统来说,拥有自身完善的 API,通过深入学习和研究,Android 操作系统在多媒体文件播放方面有自身完善的数据库,现行很多播放器采用自身去检索 SD 卡的方式,而在本软件的设想中,尽量减少软件自身体积,调用系统数据库,从 Android API 中可知是可行的,对于文件播放与多媒体文件支持方面,Android API 也是可 以做到的,所以从技术的角度分析,整合音乐、视频播放于一身是可行的。

27、2.1.3 操作可行性 本软件的操作界面要做到简洁、友好、功能全面,保证了用户操作的人性化。对各 类用户的错误操作或异常情况应有提示或自动消除能力。 2.2 软件功能分析 通过研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有 各的播放特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点, 编写出功能实用,使用方便快捷的播放器。目前已经需要的功能有能播放常见音频文件 的功能,如 MP3、WAV、3GP 等,拥有播放菜单,能选择播放清单,具备一般播放器的 功能,如快进,快退等。音乐播放模式也比较完善,有单曲,顺序,循环,随机播放等 8 模式。 2.3 目标系统逻

28、辑模型 逻辑模型是新系统开发中要采用的模型和信息处理方法。逻辑方案是系统分析阶段 的最终成果,也是今后进行系统设计和实施的依据。 2.3.1 系统运行环境 开发环境:Eclipse 3.7+ADT 17.0.0 运行环境:Android1.6- Android 2.2 W2JJW-4KYDP-2YMKW-FX36H-QYVD8 2.3.2 播放器的基本控制需求 cc 图 2.1 播放器基本控制图 需求用例表: 用例名称:播放 参与者:用户 目标:使得用户可以播放在播放列表中选中的歌曲 前置条件:播放器正在运行 基本事件流:1.用户单击“播放”按钮或单击列表中的某首歌、视频 2.歌曲或视频被播放

29、 用例名称:暂停 参与者:用户 目标:使得用户可以暂停正在播放的歌曲或视频 9 前置条件:歌曲或视频正在播放且未暂停 基本事件流:1.用户单击“暂停”按钮 2.播放器将暂停当前的歌曲 用例名称:快进/快退 参与者:用户 目标:使得用户快进视频 前置条件:视频正在播放或暂停 基本事件流:1.用户单击快进或快退 2.视频将快进或快退 用例名称:上一首/下一首 参与者:用户 目标:使得用户可以听上一首或下一首歌曲 前置条件:歌曲正在播放或暂停 基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首或下一首歌曲 用例名称:列表更新 参与者:用户 10 目标:列表及时更新 前置条件:程序

30、在运行 基本事件流:1.用户单击“menu”中“更新列表” ,或者列表中某条目被变更 2.播放器音乐列表或视频列表被更新 2.3.3 播放清单列表管理需求 当用户选中列表中某一项歌曲,就有的需求: 用 户 视 频 播 放 器 音 乐 列 表 播 放 / 暂 停 歌 词 音 乐 列 表 上 一 首 / 下 一 首 播 放 模 式 视 频 列 表 快 进 / 快 退 歌 手 图 片 播 放 / 暂 停 图 2.2 播放器清单 11 用例名称:播放 参与者:用户 目标:使得程序播放选中的歌曲 前置条件:程序运行在播放菜单选项中 基本事件流:1.用户单击“播放”按钮 2.播放器进入播放状态 用例名称:

31、删除 参与者:用户 目标:使选中的歌曲被移除 前置条件:程序运行在列表页面 基本事件流:1.长按列表中某一条目 2.用户单击“移除”按钮 3.播放器移除选中歌曲/全部移除歌曲 12 2.3.4 播放友好性需求 用 户 音 乐 播 放 模 式 设 置 随 机 播 放 顺 序 歌 手 图 片 单 曲 循 环 图 2.3 播放器设定 用例名称:音乐播放模式 参与者:用户 目标:使得程序进入播放模式设定状态 前置条件:程序运行在播放器设定界面中 基本事件流:1.用户单击“顺序、随机、单曲”按钮 2.播放器进入选中模式播放状态 2.4 系统性能需求 根据 Android 手机系统要求无响应时间为 5 秒

32、,所以就有如下性能要求: (1)当要求歌曲播放时,程序响应时间最长不能超过 5 秒 (2)当要求歌曲暂停时,程序响应时间最长不能超过 5 秒 (3)当要求歌曲停止时,程序响应时间最长不能超过 5 秒 (4)当要求歌曲上/下一首时,程序响应时间最长不能超过 5 秒 (5)当要求进行清单列表时,程序响应时间最长不能超过 5 秒 13 2.5 运行环境需求 操作系统:Android 手机基于 Linux 操作系统 支持环境:Android 1.5 2.2 版本 开发环境:Eclipse 3.7 ADT 17.0.0 14 第三章 概要设计 3.1 设计策略 遵循软件软件工程原理及方法,采用如下设计策

33、略。第一,模块化策略。系统分两 大模块:音乐播放模块、视频播放模块和控制模块。界面分为:列表页面、播放页面, 因而为了保证系统整体结构和数据安全,也提高了模块间的独立性,减少藕合程度,必 须进行有效地系统分割。本系统将使用 MVC 思想编程,分离控制模块。使制模块得复用, 数据库方面使用系统 Media 数据库中内容,尽量减少自身数据量,减少软件体积。 3.2 系统结构设计 在完成对系统的需求分析后,就可以有针对性的进行设计了。在本章中,主要针对 该软件的模块划分以及前、后台功能模块介绍,得出前、后台功能结构图;由前、后台 功能结构图,得出本系统的整体流程图。在数据库设计中,详细介绍了如何调用

34、并操作。 3.2.1 软件总体结构 软件功能分为两大功能:音乐播放功能、视频播放功能,音乐播放功能。需要实现 的功能有能播放常见音频文件的功能,如 MP3、WAV 、3GP 等,拥有播放菜单,能选择 播放清单,具备一般播放器的功能,如快进,快退等。音乐播放模式包括单曲循环,顺 序播放,随机播放等模式。 15 3.2.2 系统模块划分 用 户 视 频 播 放 器 音 乐 播 放 播 放 / 暂 停 歌 词 音 乐 列 表 乐 曲 管 理 更 新 上 一 首 / 下 一 首 播 放 模 式 视 频 列 表 快 进 / 快 退 歌 手 图 片 列 表 循 环 随 机 播 放 单 曲 循 环 播 放

35、/ 暂 停 视 频 管 理 图 3.1 软件功能哥结构图 功能描述如下: (1) 播放/暂停:通过播放按键实现暂停或播放歌曲。 (2) 上一首/下一首:通过上一首、下一首按键实现歌曲切换。 (3) 歌词:当一首歌曲正在播放时,自动寻找该歌曲的歌词文件并解析,实时更新 于播放界面。 (4) 歌手图片:当一首歌曲正在播放时,自动寻找该歌曲的歌手图片,实时更新于 播放界面。 (5) 音乐列表:软件开启式第一个页面。 (6) 快进/快退:播放视频时快进或快退 15 秒 (7) 播放模式:播放模式为一首歌曲播放结束后按照单曲循环或顺序播放或随机播 放的方式播放西一首。 (8) 更新列表:主动更新音乐或视

36、频列表 (9) 列表管理:删除歌曲 3.2.3 程序流程图 综合以上的模块划分以及各个模块的功能分析,将本软件的整体流程图描述如下: 16 开始 音乐列表 音乐播放界 面 视频播放界 面 扫描文件 结束 视频播放界 面 扫描文件 播放模式设 定 点击条目 点击条目 Y N 退出 退出 菜单 菜单 快进 / 快退 图 5-8 系统流程图 由系统流程图可以看出,本软件一播放列表为主入口,在播放列表中可以对歌曲、 视频进行删、改,当用户点击该页的 menu 时可以选择更新列表、跳至播放页面的功能, 当用户单击列表中某一条目式,本软件自动清空目前正在播放队列里的歌曲并播放用户 当前选中的歌曲或视频,歌

37、曲播放时同步更新歌词,在歌曲播放页面可以选择歌曲的播 放模式。在试音、音乐的播放页面中可以对当前播放的多媒体文件进行播放。再返回时, 如果从视频播放页面返回播放列表页面时停止视频播放,如果从音乐播放页面返回播放 列表时歌曲转为后台播放。当从播放列表页返回时提示用户是否退出,点击确定则结束 程序 3.3 数据库及字段属性设计(以音乐播放器为例) 3.3.1 数据库结构 数据结构组织和数据库文件设计要根据不同用途,使用要求等,来决定数据的整体 组织形式等一系列问题。 数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上, 而且数据是按一定的格式存放的。数据库中的数据按一定数据模型

38、组织、描述和存储, 具有较小的重复度、较高的数据独立性和易扩展性,并且可以被在一定范围内的各种用 户共享。在涉及数据库的软件开发中,需要根据有待解决的问题性质、规模,以及所采 用的前端程序创建工具等,做出合适的数据库类型选择。 file_table 主要是保存歌曲名字、类型、路径等,字段说明:Id 歌曲 id 号 17 fileName 歌曲名字 filePath 歌曲路径 sort 歌曲类型(表 3.1、图 3.1.1) Android 自带一个 MediaStore 封闭类 专门来存储媒体信息,通过 Uri EXTERNAL_CONTENT_URI 来访问 SDcard 中的歌曲详细信息。

39、存放媒体信息如 TITLE(标题)、 ARTIST(艺术家) 、ALBUM(专辑) 、SIZE(大小 )(表 3.2、图 3.1.2) 表 3.1 属性 数据类型 允许空 主键 _Id INTEGER Not null Primary key fileName TEXT Not null filePath TEXT sort INTEGER 表 3.2 属性 数据类型 允许空 主键 _ID INTEGER Not null Primary key TITLE TEXT Not null ARTIST TEXT ALBUM TEXT SIZE LONG 图 3.1 歌曲列表 18 图 3.2 歌

40、曲详细 3.3.2 数据库连接 Android 中自带 SQLite 数据库,这是一个十分小型的数据库,这样正适合 Android 这 种移动平台使用。 Android 数据库存储的位置在 data/data/databases/目录下 Android 是利用 ContentProvider 作为内容提供商,SQLiteOpenHelper 数据库帮助类来进行对数据 库的创建和操作。通过 Context.getContentResolver()方法直接对数据库进行操作。程序 中数据库类为 DBHelper extends SQLiteOpenHelper(继承关系) ,内容提供类 DBProv

41、ider extends ContentProvider(继承关系) Android 自带一个 MediaStore 封闭类 专门来存储媒 体信息,通过 Uri EXTERNAL_CONTENT_URI 来访问,获得 SDcard 中的歌曲详细信息。 3.3.4 数据库更新 当数据库需更新时,比如添加歌曲或者删除歌曲之后,Android 系统并不会主动更新 数据库只有程序重启或手机重启时 Android 会更新 Media 数据库,于是当进行了数据库操 作时就需要注册广播接收器通知系统更新数据库这样既可在进行相关文件增删改查时同 步更新数据库。 19 第四章 系统详细设计与实现 本软件的设计时

42、,已将划分为多个模块,并将它们按照一定的原则组装起来,每个 模块完成一定的功能。详细设计是软件设计的第二阶段,主要是实现每个模块具体执行 的功能、详细算法。详细设计的完成为编码奠定了基础,编码是在详细设计的基础上进 行的,它是将详细设计得到的处理过程的描述转换为基于某种计算机语言的程序。 本章我们将对软件的总体规划和设计进行介绍,同时对难点穿插一些代码。另外, 对于本章我们将以模块为单位来展开 4.1 前台功能模块分析 4.1.1 音乐相关界面设计 音乐视频播放器的界面要给用户第一体验印象的界面,需要使用户有兴趣使用, 在参考 Android 市场上多款播放器后设计为 TabHost 作为音乐

43、和视频的切换入口,使 用略带梦幻和渐变的背景图片给用户传达放松、呼吸的感觉。TabHost 转载两个 Activity 分别为音乐和视频播放列表。列表均采用自定义的列表布局。 综合考虑,本系统登录首页采用上述设计模式进行设计和实现。如下图: 图 4-1 播放器主界面 20 音乐播放列表的自定义样式代码如下: color/background_color color/defaults 1px false drawable/listview_background android:color/transparent 0dip 0dip 3dip 音乐播放界面的实现考虑的问题就比较多了,诸如:布局方式

44、、按键触发动画效果、 透明效果、歌词显示变换方式等,最终由 Android 开发已不推荐使用的绝对布局转为 LinearLayout 嵌套而成,各种按键素材均为反解市场上多款成熟播放器的.apk 文件反解 得到,并自定义 seekbar 样式,Android 自带 seekbar 样式为: 图 4-2 原始 seek 样式 自定义样式后 seek 变为: 图 4-3 自定义 seek 样式 SeekBar 样式代码如下: 21 Android 的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布 局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对 各配置

45、文件进行读取。这样就可以形成不同的可视化界面和炫丽的效果。播放器主界面 是一个 Activity,Android 工程在每个 activity 启动的时候会首先执行 Oncreate()方法,如 下代码: public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.musicplayer); 最终,音乐正在播放页面设计如图: 22 图 4

46、-4 音乐播放页面首页 4.1.2 视频播放相关界面设计 上述播放器主界面 TabHost 装载两个 Activity 分别为音乐和视频播放列表。列表均 采用自定义的列表布局。其中视频播放列表如下图: 图 4-5 视频播放列表页 因为在音乐播放页面的介绍时介绍了样式代码,这里介绍实现列表的前台 xml 文件 内容: 图 4-6 视频正在播放操作界面 电影播放页面的实现列表的前台 xml 文件内容: 4.2 后台数据库交互功能模块分析 4.2.1 数据库连接 Android 中自带 SQLite 数据库,这是一个十分小型的数据库,这样正适合 Android 这 种移动平台使用。 Android

47、数据库存储的位置在 data/data/databases/目录下 Android 是利用 ContentProvider 作为内容提供商,SQLiteOpenHelper 数据库帮助类来进行对数据 库的创建和操作。通过 Context.getContentResolver()方法直接对数据库进行操作。程序 中数据库类为 DBHelper extends SQLiteOpenHelper(继承关系) ,内容提供类 DBProvider extends ContentProvider(继承关系) Android 自带一个 MediaStore 封闭类 专门来存储媒体信息,通过 Uri EXTER

48、NAL_CONTENT_URI 来访问,获得 SDcard 中的歌曲详细信息。 Cursor mAudioCursor = getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, / 查询条件 null, / 条件的对应 ?的参数 MediaStore.Audio.AudioColumns.TITLE/ 排序方式 ); Cursor VudioCursor = getContentResolver().query( MediaStore.Video.Media.EXTERNAL_C

49、ONTENT_URI, null, null, / 查 询条件 null, / 条件的对应 ?的参数 MediaStore.Video.VideoColumns.TITLE/ 排序方式 ); 4.2.2 数据库操作 当数据库需更新时,比如添加歌曲或者删除歌曲之后,Android 系统并不会主动更新 数据库只有程序重启或手机重启时 Android 会更新 Media 数据库,于是当进行了数据库操 作时就需要通知系统更新数据库方法如下: private void scanSdCard() IntentFilter intentFilter = new IntentFilter( Intent.ACTION_MEDIA_SCANNER_STARTED); intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED); 25 intentFilter.addDataScheme(“file“); scanReceiver = new ScanSdFilesReceiver(); registerReceiver(scanReceiver, intentFilter); sendBroadcast(new Intent(Intent.ACTION_MED

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1