andriod音乐播放器设计方案.docx
- 文档编号:27641638
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:25
- 大小:472.49KB
andriod音乐播放器设计方案.docx
《andriod音乐播放器设计方案.docx》由会员分享,可在线阅读,更多相关《andriod音乐播放器设计方案.docx(25页珍藏版)》请在冰豆网上搜索。
andriod音乐播放器设计方案
手机MP3音乐播放器设计方案
班级:
移商1001
组员:
马**黄*
摘要
当今社会的生活节奏越来越快,随着硬件移动设备的越来越先进,人们对移动设备的要求也越来越高,从以前的追求技术到现在的追求视觉,因此,也逐步的提高了对系统的要求,本文主要是对Android系统上音乐播放器应用程序的设计与实现进行讨论。
本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写,同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。
该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置。
通过对基于Android平台下的播放器的设计,了解音乐播放器的设计的原理和实现的相关技术,掌握了Android编程思想以及基本的应用组件,对以后从事Android开发有很大的帮助。
关键字:
Android;开源系统;音乐播放器;Java
第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日志显示出来。 @Override//数据库查询操作 publicCursorquery(Uriuri,String[]projection,Stringselection,String[]selectionArgs,StringsortOrder){ SQLiteDatabasedb=dbOpenHelper.getWritableDatabase(); //依次参数为: 表名,查询字段,where语句,替换,groupby(分组),having(分组条件),orderby(排序) Cursorcur=db.query(FileColumn.TABLE,projection,selection,selectionArgs,null,null,sortOrder);returncur;} 第5章播放器系统功能的实现 5.1.播放器主界面功能实现 主界面是用户使用软件的的第一个视野图,也是用户对软件风格的第一印象图,很大影响用户对使用软件的评价,尤为重要。 5.1.1.主界面显示 播放器主界面如图5.1所示: 图5.1 Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对各配置文件进行读取。 这样就可以形成不同的可视化界面和炫丽的效果。 播放器主界面是一个Activity,Android工
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- andriod 音乐 播放 设计方案