andriod音乐播放器设计方案要点.docx

上传人:b****3 文档编号:5395624 上传时间:2023-05-08 格式:DOCX 页数:27 大小:473.06KB
下载 相关 举报
andriod音乐播放器设计方案要点.docx_第1页
第1页 / 共27页
andriod音乐播放器设计方案要点.docx_第2页
第2页 / 共27页
andriod音乐播放器设计方案要点.docx_第3页
第3页 / 共27页
andriod音乐播放器设计方案要点.docx_第4页
第4页 / 共27页
andriod音乐播放器设计方案要点.docx_第5页
第5页 / 共27页
andriod音乐播放器设计方案要点.docx_第6页
第6页 / 共27页
andriod音乐播放器设计方案要点.docx_第7页
第7页 / 共27页
andriod音乐播放器设计方案要点.docx_第8页
第8页 / 共27页
andriod音乐播放器设计方案要点.docx_第9页
第9页 / 共27页
andriod音乐播放器设计方案要点.docx_第10页
第10页 / 共27页
andriod音乐播放器设计方案要点.docx_第11页
第11页 / 共27页
andriod音乐播放器设计方案要点.docx_第12页
第12页 / 共27页
andriod音乐播放器设计方案要点.docx_第13页
第13页 / 共27页
andriod音乐播放器设计方案要点.docx_第14页
第14页 / 共27页
andriod音乐播放器设计方案要点.docx_第15页
第15页 / 共27页
andriod音乐播放器设计方案要点.docx_第16页
第16页 / 共27页
andriod音乐播放器设计方案要点.docx_第17页
第17页 / 共27页
andriod音乐播放器设计方案要点.docx_第18页
第18页 / 共27页
andriod音乐播放器设计方案要点.docx_第19页
第19页 / 共27页
andriod音乐播放器设计方案要点.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

andriod音乐播放器设计方案要点.docx

《andriod音乐播放器设计方案要点.docx》由会员分享,可在线阅读,更多相关《andriod音乐播放器设计方案要点.docx(27页珍藏版)》请在冰点文库上搜索。

andriod音乐播放器设计方案要点.docx

andriod音乐播放器设计方案要点

手机MP3音乐播放器设计方案

班级:

移商1001

组员:

马**黄*

摘要

当今社会的生活节奏越来越快,随着硬件移动设备的越来越先进,人们对移动设备的要求也越来越高,从以前的追求技术到现在的追求视觉,因此,也逐步的提高了对系统的要求,本文主要是对Android系统上音乐播放器应用程序的设计与实现进行讨论。

本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写,同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。

该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置。

通过对基于Android平台下的播放器的设计,了解音乐播放器的设计的原理和实现的相关技术,掌握了Android编程思想以及基本的应用组件,对以后从事Android开发有很大的帮助。

关键字:

Android;开源系统;音乐播放器;Java

 

目录

第一章引言3

1.1.选题目的及意义3

1.2.项目背景3

第二章系统需求分析4

2.1.功能需求4

2.1.1.播放器控制需求4

2.1.2.播放器扩展卡需求4

2.2.系统界面需求4

2.3.系统性能需求5

2.4.运行环境需求5

第三章安卓项目介绍6

3.1.安卓简介及优点6

3.1.1.安卓简介6

3.1.2.安卓优点7

3.2.搭建安卓开发环境7

3.3.Andriod音乐播放器项目工程设计8

3.3.1.Andriod项目8

3.3.2.Andriod工程程序设计9

3.3.3.AndroidManifest.xml文件10

第四章安卓数据库设计12

4.1.数据库及字段属性12

4.1.1.字段设计12

4.1.2.音乐播放器E-R图13

4.2.数据库连接14

4.2.1.创建数据库14

4.2.2.操作数据库15

4.2.3.数据显示16

第五章播放器系统功能的实现16

5.1.播放器主界面功能实现16

5.1.1.主界面显示16

5.1.3.播放器的播放、暂停、歌词播放等功能18

5.2.播放列表显示20

5.4.播放界面实现22

5.5.歌词显示23

5.6.手机扩展卡的访问24

第六章系统测试25

第七章心得与总结26

第1章引言

1.1.选题目的及意义

当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统有塞班S60、wp7、IOS以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。

那么能否在手机上拥有自己编写的个性音乐播放器,为个人喜好来设计播放器的界面和布局来娱乐自己?

能的,Android系统就能做到。

本文的音乐播放器就是基于Android手机平台编写的播放器。

1.2.项目背景

随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。

于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。

针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:

还能播放RMVB格式的视频文件。

此外,还能支持中文、英文等语言界面。

要研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用方便快捷的播放器。

目前已经实现的功能有能播放常见音频文件的功能,如MP3,WAV等,拥有播放菜单,能选择播放清单,具备一般播放器的功能,如快进,快退,音量调节等。

播放模式也比较完善,有单曲,顺序,循环,随机播放等模式。

第2章系统需求分析

2.1.功能需求

根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。

以例图表示以下分别描述:

2.1.1.播放器控制需求

功能需求定义了开发人员必须实现的软件功能。

用户需求文档描述了用户使用产品必须要完成的任务。

本软件主界面用户功能控制需求有播放、暂停、停止、界面歌词显示。

当用户需要对特定某首歌曲进行操作时,播放器提供的功能有播放、详细属性、加入铃声库、增加歌曲、从播放器音乐列表移除、把全部歌曲从音乐列表中移除、进入设定界面功能。

2.1.2.播放器扩展卡需求

播放器扩展卡需求是用户对播放器音乐对手机的文件浏览器的需求。

文件浏览器可以搜寻手机音乐、SD卡音乐。

目标是手机和内存卡上的mp3格式的音乐文件。

2.2.系统界面需求

用户界面是一个应用程序很重要的一面——它直接影响程序的使用价值。

对于大多数用户来说,用户界面就是他们对一个产品的大致的了解。

所以对他们来说,一个内部设计良好但用户界面不好的应用程序就是一个不好的程序。

说到底一句话:

一个优秀的用户界面即是一个直观的、对用户透明的界面:

用户在首次接触了这个软件后就觉得一目了然,不需要多少培训就可以方便地上手使用,而且用户在使用过程中甚至会获得愉悦快乐的心情。

说起来很简单,可是在实际开发中,真正能够做到这一点却很不容易的。

为了减少工作量本播放器界面为个人项目设计素材。

播放器主界面如图2.5所示:

图2.5

2.3.系统性能需求

根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:

1 当要求歌曲播放时,程序响应时间最长不能超过5秒

2 当要求歌曲暂停时,程序响应时间最长不能超过5秒

3 当要求歌曲停止时,程序响应时间最长不能超过5秒

2.4.运行环境需求

操作系统:

Android手机基于Linux操作系统

支持环境:

Android2.2-4.0.0版本

开发环境:

Eclipse8.6ADT0.95

第三章安卓项目介绍

3.1.安卓简介及优点

3.1.1.安卓简介

Android一词的本义指“机器人”,如上图3.1所示。

同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。

Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(OpenHandsetAlliance)开发。

它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。

低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。

另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。

2010年10月份,谷歌宣布Android系统达到了第一个里程碑,即电子市场上获得官方数字认证的Android应用数量已经达到了10万个,Android系统的应用增长非常迅速。

在2010年12月,谷歌正式发布了Android2.3操作系统Gingerbread(姜饼)。

2011年1月,谷歌称每日的Android设备新用户数量达到了30万部,到2011年7月,这个数字增长到55万部,而Android系统设备的用户总数达到了1.35亿,Android系统已经成为智能手机领域占有量最高的系统。

2011年8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。

2011年9月份,Android系统的应用数目已经达到了48万,而在智能手机市场,Android系统的占有率已经达到了43%。

继续在排在移动操作系统首位。

在本月19号,谷歌将会发布全新的Android4.0操作系统,这款系统被谷歌命名为IceCreamSandwich(冰激凌三明治)。

2012年1月6日,谷歌AndroidMarket已有10万开发者推出超过40万活跃的应用,大多数的应用程序为免费。

AndroidMarket应用程序商店目录在新年首周周末突破40万基准,距离突破30万应用仅4个月。

而在2011年早些时候,AndroidMarket从20万增加到30万应用也花了四个月。

3.1.2.安卓优点

Andriod有如下八大优点:

(1)应用程序框架支持组件的重用与替换

(2)Dalvik虚拟机专门为移动设备做了优化

(3)内部集成浏览器该浏览器基于开源的WebKit引擎

(4)优化的图形库包括2D和3D图形库,3D图形库基于OpenGLES

SQLite用作结构化的数据存储

(5)多媒体支持包括常见的音频、视频和静态印象文件格式(如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)

(6)GSM电话(依赖于硬件)蓝牙Bluetooth,EDGE,3G,andWiFi(依赖于硬件)照相机,GPS,指南针,和加速度计(依赖于硬件)

(7)丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件

3.2.搭建安卓开发环境

任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android的开发环境配置。

搭建开发环境需要的软件有:

操作系统:

Windows

软件包:

AndroidSDK(SoftwareDevelopmentkitJavaDevelopmentkit)、ADT(AndroidDeveloopmentTool)

IDE环境:

EclipseIDE+ADTEclipse2.3以上

JDK:

JavaRuntimeEnvironment虚拟机、(JDK)JavaDevelopmentkit

安装步骤如下:

第一步:

安装Java虚拟机sun-java6-jdk版本

第二步:

安装Eclipse8.6工具官网http:

//www.eclipse.org/downloads/

第三步:

安装AndroidSDK:

首先要下载SDK,可以在这个网址下载Http:

//,选择相应的系统进行安装.如3.3所示:

第四步:

安装AndroidADT插件

运行Eclipse,选择help->installnewsoftware选择add,将会弹出一个对话框,点击OK,选择要安装的软件,占next,然后选择接受协议,直到安装成功,重启Eclipse软件,设置AndroidSDKHome,Window->refrence在SDKlocation中输入SDKTools路径:

D:

\androidsoftware\android-sdk-windows点击OK这样Android环境就已经搭建成功了。

3.3.Andriod音乐播放器项目工程设计

3.3.1.Andriod项目

Android的四大基本组件:

Activity(活动),Service(服务),BroadcastReceiver(广播),ContentProvider(内容提供者),各组件之间要进行切换需要一个意图或企图Intent类,通过启动StartIntent()方法来使各组件进行跳转。

Android的五大布局方式:

LinearLayout(线性布局)FrameLayout(帧布局)TableLayout(表格布局)AbsoluteLayout(绝对布局)RelativeLayout(相对布局)。

五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。

Android的线程,以及线程之间通信的中介:

Handler类

Android数据库:

在第三章已经介绍过了。

这里不再介绍

Android配置文件:

AndroidManifest.Xml及res资源文件中各种属性布局方式引用的资源等

Android系统将插件ADT集成到了Eclipse工具上,因此,一个Android程序启动后,系统会启动一个模拟器(Emulator)如下图3.5:

图3.5

3.3.2.Andriod工程程序设计

Android工程基本结构目录包括:

src(源代码)、gen(Android系统自动生成的常量)、Res(资源文件):

主要存放程序界面的布局配置(.xml)文件和图片资源。

AndroidMainfes.xml是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转。

下图3.6是音乐播放器代码结构:

图3.6

图3.6内容为该播放器的.Java文件、播放器所用到的字符串,字体大小、字的颜色等配置文件、该播放器的各种界面的布局配置文件及该播放器的图片资源,如图3.7所示:

图3.7

3.3.3.AndroidManifest.xml文件

Android系统的任何一个程序启动都需要AndroidManifest.xml来启动程序,任何一个新建的工程目录都会自动生成一个AndroidManifest.xml文件,此配置文件是整个程序能够正常运行的核心,它里面包含了AndroidSDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的去AndroidManifest.xml中寻找标识来作出相应的操作。

任何一个AndroidManifest.xml文件的格式都应为:

xmlversion="1.0"encoding="utf-8"?

>

Android系统有一个编码的规定,支持的编码是"utf-8",当程序中出现乱码是,我们须将其编码格式转化为"utf-8".在AndroidManifest.xml中会在第一行声明一句:

xmlversion="1.0"encoding="utf-8"?

>。

它是该系统支持的版本和编码。

在第二行定义了我们需要使用的架构,该架构来自xmlns:

android="namespace)是一个命名空间。

在application元素我们定义android:

icon="@drawable/icon"

android:

label="@string/app_name",android:

ico是程序在手机中显示的图片,我们运用@drawable/icon表示了对res/drawable目录下的ic_launcher.png的引用。

@string/app_name表示了对res/value目录下string.Xml中定义的app_name参数的引用。

name=".PlayRackActivity">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

这是系统确定的首先要启动的Activity是PlayRackActivity。

过滤器intent-filter有两种启动方式来启动界面:

(1)显示方式

显示方式是在代码中的直接启动组件,启动时会声明Intent,在它的构造方法Intent(组件1,组件2)中直接指定一个组件的名字,然后调用方法startIntent(intent)以启动指定的组件。

(2)隐式方式

隐式方式是通过过滤器来过滤完成的,启动的组件必须满足action和category的条件才能够启动该组件。

这些属性是在AndroidManifest.Xml文件中声明的。

两种启动方式都可以通过程序setAction(ACTION常量)和startActivity(intent)或配置文件两种方式来实现组件的跳转。

第4章安卓数据库设计

数据结构组织和数据库文件设计要根据不同用途,使用要求等,来决定数据的整体组织形式等一系列问题。

数据库,顾名思义,是存放数据的仓库。

只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。

数据库中的数据按一定数据模型组织、描述和存储,具有较小的重复度、较高的数据独立性和易扩展性,并且可以被在一定范围内的各种用户共享。

在涉及数据库的软件开发中,需要根据有待解决的问题性质、规模,以及所采用的前端程序创建工具等,做出合适的数据库类型选择。

4.1.数据库及字段属性

4.1.1.字段设计

file_table主要是保存歌曲名字、类型、路径

字段说明:

Id歌曲id号fileName歌曲名字filePath歌曲路径sort歌曲类型(表4.1、图4.2)

属性

数据类型

允许空

主键

_Id

INTEGER

Notnull

Primarykey

fileName

TEXT

Notnull

filePath

TEXT

sort

INTEGER

表4.1

列名

数据类型

长度

字段描述

_Id

integer

5

编号,主键

groupid

integer

5

组编号

Music-id

integer

5

歌曲编号

表4.2

Android自带一个MediaStore封闭类专门来存储媒体信息

通过UriEXTERNAL_CONTENT_URI来访问SDcard中的歌曲详细信息图4.3MP3下载列表

4.1.2.音乐播放器E-R图

音乐播放器E-R(实体-联系:

entity-relation图),歌曲的信息有歌曲名字、发行年份、流派名称、专辑名称、艺术家名称、曲目号码。

歌曲的排列形成播放列表。

列表有自己的编号,同时也给组成列表的歌曲名字分配编号。

4.2.数据库连接

这里将介绍如何进行Android数据库连接,Android中自带SQLite数据库,这是一个十分小型的数据库,这样正适合Android这种移动平台使用。

Android数据库存储的位置在data/data/<项目文件夹>/databases/目录下。

Android是利用ContentProvider作为内容提供商,SQLiteOpenHelper数据库帮助类来进行对数据库的创建和操作。

通过Context.getContentResolver()方法直接对数据库进行操作。

程序中数据库类为DBHelperextendsSQLiteOpenHelper(继承关系),内容提供类DBProviderextendsContentProvider(继承关系)。

4.2.1.创建数据库

Android提供了标准的数据库创建方式。

继承SQLiteOpenHelper,实现onCreate和onUpgrade两个方法,有个好处就是便于数据库版本的升级,连接数据库的算法如下:

publicDBHelper(Contextcontext){//创建数据库

super(context,DATABASE_NAME,null,DATABASE_VERSION);

}

publicvoidonCreate(SQLiteDatabasedb){//创建时调用

db.execSQL(DATABASE_CREATE);

}

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){//版本更新时调用

db.execSQL("DROPTABLEIFEXISTSFile_Table");

onCreate(db);

}

@Override//在ContextProvider运行时自动创建数据库

publicbooleanonCreate(){

dbOpenHelper=newDBHelper(getContext());

returntrue;

}

数据库如果创建不成功则抛出FIleNotFoundException异常

4.2.2.操作数据库

Android对数据库的操作主要有插入、删除、更新、查询操作,在进行任何操作时都必须指定一个Uri,才能对相应的表进行数据操作。

//数据库删除操作

@Override

publicintdelete(Uriarg0,Stringarg1,String[]arg2){

SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();

try{

Db.delete(FileColumn.TABLE,arg1,arg2);

}catch(Exceptionex){

ex.printStackTrace();

}return1;

}

@Override//数据库插入操作

publicUriinsert(Uriuri,ContentValuesvalues){

SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();

longcount=0;

try{count=db.insert(FileColumn.TABLE,null,values);

}catch(Exceptionex)

{ex.printStackTrace();}

if(count>0)returnuri;

elsereturnnull;

}

4.2.3.数据显示

程序是利用Cursor游标类指向数据表中的某一项,然后进行查询数据,用Log日

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2