播放器文档-V2.0_第1页
播放器文档-V2.0_第2页
播放器文档-V2.0_第3页
播放器文档-V2.0_第4页
播放器文档-V2.0_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于基于 Android 开发音乐播放器的设计开发音乐播放器的设计摘摘 要要 当今社会发展越来越快,特别是 IT 方面的。人们对软件设备的要求也越来越高,本文主要是在 Android 系统上对音乐播放器应用程序的设计与实现进行讨论,通过这一过程来进一步学习 Android 平台,这样对个人未来发展有很大的意义。 本论文的音乐播放器采用了 Android 开源系统技术,利用 Java 语言和 Eclipse开发工具对播放器代码进行编写。同时给出了详细的系统设计过程、部分界面截图及主要的功能流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一

2、首、歌词显示等功能于一体,性能良好,在 Android 系统中能独立运行。对于播放歌曲的文件,本播放器只限于应用层程序的探讨,所以对具体的文件不做深入研究。 实验证明,基于 android 平台的软件开发简单,使用方便简洁,必将成为未来几年的发展方向,具有普遍意义。关键词关键词: Android,Java,Eclipse,音乐播放器 目录目录1.前 言.12.系统需求分析.32.1 功能需求.32.1.1 播放器的基本控制需求.32.1.2 功能需求(时序图)分析.32.2 系统结构图和流程图.52.3 系统界面需求.52.4 系统性能需求.62.5 运行环境需求.63.ANDROID 项目介

3、绍.63.1 什么是 Android.63.1.1Android 的介绍.63.1.2 Android Features 特性:.73.1.3 Android 基本框架(Android Architecture) .83.2 Android 应用软件开发的核心技术.93.2.1 Android 应用开发语言.93.2.2 Android 应用程序组件.103.3 Android 开发环境的搭配.113.4 Android 模拟器中 sd 卡的创建和文件的上传.133.4.1 SD 卡的创建.133.4.2 向 sd 卡里面上传文件及异常解决.144.音乐播放器的详细设计.144.1 播放器的功

4、能介绍.144.2 播放器的功能实现.155.软件测试.165.1 软件的测试.165.1.1 软件测试的环境.165.1.2 测试阶段.171.前前 言言当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,是的手机操作系统也出现了不同各类,现在的市场主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的 Android 操作系统,其中占有开发源代码优势的 Android 系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌 Android 系统就能做到。本文的音乐播放器就是基于谷歌 Android 手机平台的播放

5、器。Android:是谷歌于 2007 年公布的开放式源代码手机系统,一直受到人们的热捧。Android 是基于 Linux 内核的软件平台和操作系统,它开放性就优于其他封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于 Android 平台的。随着计算机的广泛运用,手机市场的迅速发展,各种音频资源也在网上广为流传,这些资源卡是平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味最求外观花俏,功能庞大,对用户的手机造成很多资源浪费,比如 CPU,内存

6、等的占用率过高,在用户需要多任务操作时,受到不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户听歌的需求。现今社会生活紧张,而欣赏音乐史其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放 MP3 等音乐文件,并且能够控制播放器播放,暂停,停止,上一曲,下一曲。界面简单,操作简单。本项目是一款基于 Android 手机 平台的音视频播放器,使 Android 手机拥有个性的播放器,让手机主人随时随地处于音乐的

7、旋律中。使人们的生活更加多样化。也使设计者更加熟练 Android 的技术和其它在市场上的特点。背景说明【整体背景】随着软件与人们生活的相关性不断提高,并随着移动互联网不断高速推进,移动终端设备不断普及,移动终端设备及其应用在人们生活中起着非常大的作用。在移动平台中,安卓是最畅销的智能手机平台,在平台占有量上非常高,在此平台上用户的娱乐化需求非常突出,当前图片已经不能完全满足用户的需求,视频已经在用户生活中占了较大组成,视频播放器是进行视频各项工作的基础,所以其地位更显得相对重要了。【公司背景】虹软公司一直专注于影像和多媒体软件的技术公司。1994 年成立,为 OEM制造商提供先进的应用软件、

8、为电信业者与消费性电子产品公司提供基础建设解决方案。在研发或市场营销一直都是产业前瞻领导者。公司提供适用于数码相机、个人电脑、外设、移动终端设备的多媒体嵌入式软件产品以及消费电子固件方案。【业务背景】虹软公司是基于多媒体软件技术的一家公司,在各平台上均有多媒体的解决方案,并形成了一系列全平台的解决方案为世界各知名企业提供支持。Android基于 Linux 内核,在 C 和应用软件运行在一个应用框架,其中包括基于 Apache 与Java 兼容库写入的 API。 Android 已经营造了设备的功能的开发人员编写应用程序(“应用程序”)的大型社区。目前大约有 50 万的 Android 应用程

9、序。应用程序可以下载来自第三方网站或通过网上商店,如 GooglePlay(谷歌的应用程序商店)。播放器是一个各项视频研发工作的基础,本次题目为调用系统播放器接口完成简单的安卓平台播放器功能。播放暂停停止上一曲下一曲2.系统需求分析系统需求分析2.1 功能需求功能需求.1 播放器的基本控制需求播放器的基本控制需求根据项目的目标,我们可获得项目系统的基本需求,一下从不同的角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。 图 2.1 播放器基本控制图在播放器正在运行时,用

10、户单击“播放”按钮,播放器将播放选中的播放列表中的音乐,并同时显示当前进度;当歌曲未暂停或停止时,用户单击“暂停”按钮,播放器将进入暂停状态;播放器正在播放或暂停时,用户单击“停止”按钮,播放器将停止播放或暂停时,用户点击“上一首”或者“下一首”按钮,播放器将播放上一首或下一首歌曲。.2 功能需求(时序图)分析功能需求(时序图)分析从时序图中可以看出播放器中信息发送和调用过程图 2.2 音乐播放器的时序图主界面播放列表播放界面点击进入按钮选择歌曲播放进入播放列表播放后台 serviceServic播放页面发送参数,调用后台 service播放,返回播放界面2.2 系统结构图和流

11、程图系统结构图和流程图主界面是否显示全部音乐播放列表是否点击要播放的歌曲音乐播放程序结束图 2.3 音乐播放器系统流程图2.3 系统界面需求系统界面需求播放器界面要求布局合理,简约,颜色舒适,控制按钮友好,能让用户一眼就能看出各个按钮的作用及操作方法。能实现要求的功能,但又不重复。要考虑到不同手机屏幕大小可能不一样,应尽量兼容大多数手机屏幕尺寸,使之显示无障碍。2.4 系统性能需求系统性能需求根据 Android 手机系统要求无响应时间为 5 秒,所以就有如下性能要求: 当要求歌曲播放时,程序响应时间最长不能超过 5 秒 当要求歌曲暂停时,程序响应时间最长不能超过 5 秒 当要求歌曲停止时,程

12、序响应时间最长不能超过 5 秒 当要求歌曲上/下一首时,程序响应时间最长不能超过 5 秒 界面切换响应时间最长不能超过 3 秒2.5 运行环境需求运行环境需求操作系统:Windows xp支持环境:Android 2.1 版本开发环境:Eclipse 3.5 ADT 0.953.Android 项目介绍项目介绍3.1 什么是什么是 Android3.1.1Android3.1.1Android 的介绍的介绍Android 一词的本义指“机器人”,同时也是 Google 于 2007 年 11 月 5 日宣布的基于 Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应

13、用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。Android 是基于 Linux 内核的软件平台和操作系统,早期由 Google 开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以 Linux 内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以 Java 作为编写程序的一部分。另外,为了推广此技术,Google 和其他几十个手机公司建立开发手机联盟。Android 在未公开之前常被传闻为 Google电话或 gPh

14、one。大多传闻认为 Google 开发的是自己的手机电话产品,而不是一套软件平台。到了 2010 年 1 月,Google 开始发表自家品牌手机电话的 Nexus One。.2 AndroidAndroid FeaturesFeatures 特性特性: :Android 系统有如下的几大特性:(1) 应用程序框架 支持组建的重用与替换(2) Dalvik 虚拟机 专门为移动设备做了优化(3) 内部集成浏览器 该浏览器基于开源的 WebKit 引擎(4) 优化的图形库 包括 2D 和 3D 图形库,3D 图形库基于 OpenGl ES(5) SQLite 用作结构化的数据存储(

15、6) 多媒体支持 包括常见的音频、视频和静态印象文件格式(如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)(7) GSM 电话 (依赖于硬件)(8) 蓝牙 Bluetooth,EDGE,3G,安定 WIFI(依赖于硬件)(9) 照相机,GPS,指南针,和加速度计(依赖于硬件)(10)丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和 Eclipse 集成开发环境插件.3 AndroidAndroid 基本框架(基本框架(AndroidAndroid ArchitectureArchitecture)图 3.1 Android Archit

16、ecture(android 软件结构图)其软件层次结构自上而下分为以下几个层次: 应用程序(Application) 应用程序框架(Application Framework) 各种库(Libraries)和 Android 运行环境(RunTime) 操作系统层(1) ApplicationApplication Android 会同一核心应用程序包一起发布,该应用程序包包括email 客户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用 JAVA 编写的。(2) Application FrameWork开发者完全可以访问核心应用程序所使用的 API 框

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

18、source Manager)提供非代码资源的访问,如本地字符串,图形,和分层文件(Layout Files)。4) 通知管理器(Notification Manager)使得应用程序生可以在状态栏中显示客户通知信息。5) 活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。(3) Libraries 库Android 包括一个被 Android 系统中各种不同组件所使用的 C/C+库集。该库通过 Android 应用程序框架为开发者提供服务。(4) Android RuntimeAndroid 包括了一个核心库,该核心库提供了 JAVA 编程语言

19、核心库的大多数功能。每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik 虚拟机实例。Dalvik 是针对于同时高效地运行多个 VMS 来实现的。Dalvik虚拟机执行.dex 的 Dalvik 可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由 JAVA 汇编器编译,然后通过 SDK中的 dx 工具转化成.dex 格式由虚拟机执行。Dalvik 虚拟机依赖于 linux 的一些功能,比如线程机制和底层内存管理机制。(5) Linux 内核Android 的核心系统服务依赖于 Linux2.6 内核,如安全性,内存管理,进程管

20、理,网络协议和驱动模型。Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。3.2 Android 应用软件开发的核心技术应用软件开发的核心技术.1 AndroidAndroid 应用开发语言应用开发语言JAVA 是 Android 上的主流开发语言,各种支持也最完善。Android 发布的API 和 SDK 也都主要是面向 JAVA 开发人员的。我的播放器实例也是用 JAVA开发的。.2 AndroidAndroid 应用程序组件应用程序组件Android 应用程序最大的一个特点就是每个应用都由若干组件构成。而且各个应用程序的组件还可以相互调用(需要在代

21、码中设置相应权限)。例如假设我们需要编写一个内嵌于网页的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的 Chrome Lite 浏览器组件。又如假设我们编写了两个应用程序,其中一个程序中有列表显示图标的组件,那么我们在另一个应用程序中就可以使用该组件,而不需要在编写该功能。也就是说,不同于我们平常编写的程序,Android 的应用程序不是单一入口,而是可以从代码的不同位置启动。这就要依靠组件来实现。Android 应用程序的组件有以下四种:(1) Activities一个 Activity 实际上表现出来的就是一个程序的界面。这个界面可能有许多不同的形式,比如有列表形式,有文字形

22、式,有图像格子等形式。一个应用程序也可能有不止一个 Activity。比如一耳光短消息的程序,需要有列表显示所有消息的 Activity,还至少需要一个编辑短信的 Activity,还可能需要设置、菜单等界面。每个 Activity 都有一个默认的窗口用于绘制界面,一般情况下,它是充满全屏的,但是我们可以通过程序控制它,使其小于屏幕大小,也可以控制其浮动于其他窗口之上(如 Android 中的 Toast 信息)。Activity 中显示出来的内容其实是由 view 堆叠形成的,view 是由 View 基类派生出来的各种形式的界面元素,如 ListView,GridView 等等,通过组合这

23、些view,就形成了一个可见的 Activity。我们可以用 Activity.setContentView()方法来设置一个 Activity 中所要显示的 view。(2) ServicesService 是一种没有界面的组件,同我们平常在 Windows 或 Linux 系统中所理解的“服务”一样,Android 上的 service 也是运行在后台的,运行时间可以从系统启动到系统关闭为止。对于许多应用程序来说,service 组件式至关重要的。以下载管理器为例,用户肯定希望能够在切换到其他程序时仍然在后台继续下载,这就需要用到 service 完成下载工作。而显示下载进度、已下载文件等

24、信息则由Activity 完成,同时我们还希望控制下载过程,如停止、继续等,这就需要Activity 与 service 之间进行通信。Android 允许 activity 连接到或者绑定到 service上,这样就可以让用户在界面上控制后台 service 的行为。(3) Broadcast receiversBroadcast 意为广播消息,Android 系统自身会发出许多广播消息,如电量不足,用户修改了全局设置等,各个应用程序也以向整个系统广播消息,如文件下载。Broadcast receiver 则是程序中专门用来接收广播消息的组件,它没有界面显示,只负责监听、接收广播消息,然后根

25、据程序逻辑,启动其他组件去处理广播消息。它可以启动一个 Activity 来同用户交互,也可以使用 NotificationManager向用户发出通知。NitificationManager 的 通知形式有许多种,不如说振动、响铃、闪 LED 灯,还可以在 Android 界面的消息栏处显示信息。(4) Content providersContent provider 是一种为其它应用程序提供数据的组件。这些数据可以保存在文件中,也可以保存在 SQLite 数据库中,还可以以其他任何有效的方式保存。ContentProvider 类为我们提供了一系列保存数据的方法供我们调用,可以很方便地存

26、储数据。其它应用程序在需要使用这些数据时,可以用 ContentResolver 对象,使用其中的方法。ContentResolver 可以与任何 contentprovider 交互,获取其中的数据。只需要某个组件,Android 就会尽力保证它的可用;如果该组件还没有启动,就启动它,如果该组件所属的应用程序还没拥有一个进程,则为它启动一个进程,如果系统资源不足以容纳一个新的进程,则将后台的某个进程杀死为新进程腾出资源。3.3 Android 开发环境的搭配开发环境的搭配任何事物要运行,都要有它的环境,Android 也有它的环境才能够运行,下面介绍 Android 的开发环境配置.搭建开发

27、环境需要的软件:操作系统:Windows XP 或 Linux软件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoopment Tool)IDE 环境:Eclipse IDE+ADT Eclipse3.3 以上JDK:Java Runtime Environment 虚拟机 、(JDK)Java Development kit安装步骤如下:第一步:安装 Java 虚拟机 sun-java6-jdk 版本第二步:安装 Eclipse3.5 工具 官网 http:/www.eclipse

28、.org/downloads/选择版本(图 4.2):进行安装图 3.2第三步:安装 Android SDK:首先要下载 SDK,可以在这个网址下载Http:/ ,选择相应的系统进行安装图 3.3 第四步:安装 Android ADT 插件运行 Eclipse,选择 help-install new software 选择 add,将会弹出一个框图 3.4 点击 OK,选择要安装的软件,占 next,然后选择接受协议,直到安装成功,重启 Eclipse 软件,设置 Android SDK Home,Window-refrence图 3.5 在 SDK location 中输入 SDK Tool

29、s 路径:D:android softwareandroid-sdk-windows 点击 OK这样 Android 环境就已经搭建成功了。3.4 Android 模拟器中模拟器中 sd 卡的创建和文件的上传卡的创建和文件的上传在 Android 模拟器中,初始时没有 sdcard 的,为了存放音乐文件,需要自己创建 sdcard,我们先来看看如何创建 sdcard 以及文件上传。.1 SDSD 卡的创建卡的创建通过 Android 的 Tools 来创建 sd 卡并导入进来(1) 打开 dos,windows+R 键打开。转换到你的 sdk 安装包的 tools 目录下,如我

30、的目录如下:E:android-sdk-windowstools(2) 创建 sd 卡。在命令行中输入:mksdcard 1024M E:androidsdcardsdcard.img这个 1024M 就是我们要创建的 SD 卡的大小,还是根据自己的需要来输入,最后面的那个 E:androidsdcardsdcard.img 就是所设置的 SD 存放路径,这里也可以根据我们自己的需要改变路径的,但要注意路径中不能有空格出现。(3) 在 Eclipse 里面创建模拟器,并以该 SD 开来创建(4) 创建完成之后,启动该模拟器。可以在 AndroidSDK and AVD Manager 里面指定

31、模拟器并启动。(5) 同样打开 Eclipse 的 DDMS-FileExplorer 查看 sd 卡是否安装成功。.2 向向 sdsd 卡里面上传文件及异常解决卡里面上传文件及异常解决右边两个小手机按钮就是传输文件的按钮了,用它来实现文件的传入和传出了,向左的表示把手机里的文件导出,向右的表示把文件导入到手机里面去。这里和容易出现异常。异常如下:异常一:异常一:Failed to push selection:Invalid argument出现此异常,多半是文件所在的目录里面有中文或者文件的名字是中文导致的。建议修改一下试试。还有就是观察自己的操作权限是不是不够,如果是,d

32、rwxrx 那就是可以的。如果,sd 卡是在 eclipse 里面系统自动创建的,试着重启一下 IDE。异常二:异常二:Failed to push the item(s)出现这个异常是因为传输超时造成的。可以修改。 打开 windowsPreferenceandroidDDMS 把 ADB connection tine out 项的超时时间改大点。4.音乐播放器的详细设计音乐播放器的详细设计4.1 播放器的功能介绍播放器的功能介绍过程过程 1: 当安装好速影播放器之后,出现一个界面(1):AAA(在界面上会自动显示你手机里的所有歌曲)过程过程 2: 按手机的控制键,会出现添加播放列表和设置

33、两个功能,界面(2):AAA 过程过程 3: 当点击添加播放列表按钮时,出现界面(3):AAA 就可以创建属于自己的播放列表,如(4):AAA过程过程 4: 当点击设置按钮的时候,就会出现界面(5):AAA 就可以调整里面的各种功能,比如:自动结束功能。点击自动结束按钮时,出现界面(6):AAA 里面睡眠模式和飞行模式可以选择,设置相应的时间,选择模式,按下确定按钮即可。过程过程 5: 点击一首歌曲播放时,会出现界面(7):AAA 若无歌词,可以点击(8)AAA 即可链接到相关网站下载你所需要的歌词。播放歌曲的界面还包括进度条,暂停,停止,上一首,下一首,播放模式(顺序播放,循环播放,随机播放

34、) 。点击进度条,就可以调整音乐播放的进度。过程过程 6: 点击手机的后退按钮时,播放界面就会转换到所在歌曲所在的界面。(在屏幕上,手指向左划时,效果一样)过程过程 7: 在处于所有歌曲界面时,在手机上,向左划时,界面就会跳转到所有视频的界面,界面如下(9):AAA过程过程 8: 长久按住一首歌,就会跳出界面(10):AAA 就可以把该首歌曲从所有歌曲中删除过程过程 9: 长久按住播放列表名字,就可以往其中添加你自己的歌曲,界面(11)如下:AAA过程过程 10:点击播放模式,就会在顺序播放,单曲循环和随机播放中自动切换4.2 播放器的功能实现播放器的功能实现(1) 界面打开速影播放器软件后,

35、程序先载入 listnum,从文件中读取所有歌曲的信息(歌名,专辑名,歌手名等) ,每一首歌曲都形成一个表项,每个表项中含有歌曲的名称,再往 list 中添加表项,再把 list 显示在界面上 (2) 建立播放列表先输入播放列表的名字及备注,获取播放列表的 id,建立行数到 id 的指针,把该指针,播放列表的 id,播放列表的名字,备注存到配置文件中,并更新播放列表的数目,再执行每一首歌曲都形成一个表项,每个表项中含有歌曲的名称,再往 list 中添加表项,再把 list 显示在界面上 ,目的是刷新播放列表。(3) 删除播放列表长按一下,获得播放列表的行数,行数对应的播放列表的 id 的指针,然后删除播放列表的所有信息,并使 listnum-1,然后释放 id,更新行数到 id 的指针,每一首歌曲都形成一个表项,每个表项中含有歌曲的名称,再往 list 中添加表项,再把 list 显示在界面上。(4) 播放歌曲点击要播放的歌曲,获取歌曲的行数,此行数对应到歌曲的指针,指针对应到歌曲的地址,然后向 musicplay 类(主要显示所有歌曲的播放界面)发送歌曲地址及 id,播放列表的 id,然后就转到了 mu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论