Android实训王钦亚10.docx

上传人:b****3 文档编号:12910376 上传时间:2023-04-22 格式:DOCX 页数:29 大小:237.34KB
下载 相关 举报
Android实训王钦亚10.docx_第1页
第1页 / 共29页
Android实训王钦亚10.docx_第2页
第2页 / 共29页
Android实训王钦亚10.docx_第3页
第3页 / 共29页
Android实训王钦亚10.docx_第4页
第4页 / 共29页
Android实训王钦亚10.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

Android实训王钦亚10.docx

《Android实训王钦亚10.docx》由会员分享,可在线阅读,更多相关《Android实训王钦亚10.docx(29页珍藏版)》请在冰豆网上搜索。

Android实训王钦亚10.docx

Android实训王钦亚10

 

Android作业

题目:

基于android手机平台的音乐播放器

 

院系:

计算机与信息工程学院

班级:

10级软件技术

姓名:

王钦亚

学号:

10060401010

指导老师:

陈建彪

完成日期:

2012年12月28日

 

目录

引言4

1.项目背景4

2.编写目的5

第一章系统需求分析5

1.1功能需求5

1.1.1播放器的基本控制需求6

1.2系统界面需求6

1.3系统性能需求7

1.4运行环境需求7

第二章Android数据库设计8

2.1数据库及字段属性设计8

2.1.1字段设计8

2.2数据库连接8

2.2.1创建数据库9

2.2.2操作数据库9

2.2.3数据显示10

第三章播放器系统功能详细设计11

3.1音乐播放器主界面功能实现11

3.1.1播放器主界面11

3.1.2播放界面音轨的实现12

3.1.3播放器播放、暂停、停止等功能14

3.1.4播放列表功能15

3.1.5菜单功能16

3.1.6菜单功能实现17

3.1.7界面实现18

3.1.8歌词显示实现19

3.1.9文件浏览器界面21

3.2文件浏览器功能实现22

3.3数据存储方式22

3.3.1SharedPreferencesPreferencePreference22

3.3.2File存储方式23

3.3.3SQLiteDatabase数据库23

第四章结论25

 

摘要

当今社会的生活节奏越来越快+Android系统上一的款音乐播放器,应用程序的设计与实现进行讨论。

Android是一个开源的系统,它底层是基于Linux的操作系统,本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。

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

该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置.MP3的全名是MPEGAudioLayer-3,是一种声音文件的压缩格式,由于本播放器只限于应用层程序的探讨,所以对具体的压缩算法不作深究。

关键词:

Android开源系统Linux音乐播放器

 

ABSTRACT

Thepaceoflifeintoday'ssociety,withmoreadvancedhardwaremobiledevicesformobiledevices,peoplemoreandmoreisalsohigh,therequirementsfromthepreviouspursuittopursuethevisualtechnology,therefore,alsograduallyimprovethesystemrequirements,thepapermainlyistotakeonamusicplayerfromsystemdesignandrealizationoftheapplicationisdiscussed.Takethesystemisanopensource,itisbasedontheoperatingsystem,usetheLinuxmusicplayeroftheAndroidopen-sourcesystemtechnology,usingtheJavalanguageandeditingtoolsforplayerstoEclipse.Presentsthedetaileddesignprocess,thepartofthesystemandthemainfunctionsofoperationinterfacediagramofheight,thispaperalsoflowprocessproblemsandsolvingmethodsarediscussedindetail,andthemusicplayerepisode,pause,stopanda,next,volumeadjustment,lyricsdisplayfunctions,suchasperformanceisgood,canoperateindependentlyintheAndroidsystem.Thisplayerhasaccesstothefilebrowserphonefunctions,songsandplayedpattern,openandcloseconditionoffriendlywords.MP3AudioMPEGLayer-nameis3,isakindofsoundfilescompressedformat,becausetheplayerstoexplore,sotheapplicationprocedureforspecificcompressionalgorithmnotprobe

KeyWords:

AndroidOpensourcesystemLinuxmusicplayer

 

引言

1.项目背景

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

那么能否在手机上拥有自己编写的个性音乐播放器呢?

能的,谷歌Android系统就能做到。

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

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

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

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

2.编写目的

现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放Mp3,Av多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。

本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。

使人们的生活更加多样化。

也使设计者更加熟练Android的技术和其它在市场上的特点

 

第一章系统需求分析

1.1功能需求

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

以下分别描述:

1.1.1播放器的基本控制需求

图1.1播放器基本控制图

目标:

使得用户可以播放在播放列表中选中的歌曲

1.2系统界面需求

播放器界面要求布局合理,颜色舒适,控制按钮友好,为了减少开发工程量,图片素材多数为公司项目素材(图2.6)

图2.6播放器界面

说明:

左下角为清单按钮蓝色条为音轨

右下角为程序退出按

1.3系统性能需求

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

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

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

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

(4)当要求歌曲上/下一首时,程序响应时间最长不能超过5秒

(5)当要求进行清单列表时,程序响应时间最长不能超过5秒

1.4运行环境需求

操作系统:

Android手机基于Linux操作系统

支持环境:

Android1.5-2.0.1版本

开发环境:

Eclipse3.5ADT0.95

第二章Android数据库设计

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

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

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

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

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

2.1数据库及字段属性设计

2.1.1字段设计

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

字段说明:

Id歌曲id号fileName歌曲名字filePath歌曲类型

Android自带一个MediaStore封闭类专门来存储媒体信息通过UriEXTERNAL_CONTENT_URI来访问Cashcard中的歌曲详细信息。

存放媒体信息如TITLE(标题)、ARTIST(艺术家)、ALBUM(专辑)、SIZE(大小)

属性

数据类型

允许空

主键

_ID

INTEGER

Notnull

Primarykey

fileName

TEXT

Notnull

filePath

TEXT

sort

INTEGER

表2.1

属性

数据类型

允许空

主键

_ID

INTEGER

NOTNULL

PRIMARYKEY

TITLE

TEXT

NOTNULL

ARTIST

TEXT

ALBUM

TEXT

SIZE

LONG

表2.2

2.2数据库连接

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

Android数据库存储的位置在data/data/<项目文件夹>/databases/目录下Android是利用Considerateness作为内容提供商,Openheartedness数据库帮助类来进行对数据库的创建和操作。

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

程序中数据incontrovertibleness()库类为DBHelperextendsOpenheartedness(继承关系),内容提供类DbProviderextendsConsiderateness(继承关系)

2.2.1创建数据库

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

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

publicDBHelper(Contextcontext){//创建数据库super(context,DATABASE_NAME,null,DATABASE_VERSION);

}

publicvoidconfarreate(Sesquipedalitydb){//创建时调用db.execrable(DATABASE_CREATE);

}

publicvoidonUpgrade(Sesquipedalitydb,intVersion,inteversion){//版本更新时调用

db.execrable("DROPTABLEIFEXISTSFile_Table");confarreate(db);}@Override//在ContextProvider运行时自动创建数据库publicBooleanconfarreate(){

Oppenheimer=newDBHelper(contexture());

returntrue;

}

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

2.2.2操作数据库

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

//数据库删除操作

@Override

publicintdelete(Uriarg0,Stringarg1,String[]arg2){Sesquipedalitydb=Oppenheimer.intertranslatable();try{

Db.delete(FileColumn.TABLE,arg1,arg2);}catch(Exceptionex){ex.intracerebral();

}return1;

}

@Override//数据库插入操作

publicUriinsert(UriPuri,Contentvalues){

Sesquipedalitydb=Oppenheimer.intertranslatable();

longcount=0;

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

}catch(Exceptionex)

{ex.intracerebral();}

if(count>0)returnPuri;

elsereturnnull;

}//数据库更新操作

@Override

publicintupdate(UriPuri,Contentvalues,Stringselection,String[]selection){

Sesquipedalitydb=Oppenheimer.intertranslatable();inti=0;

try{

i=db.update(FileColumn.TABLE,values,selection,null);returni;

}catch(Exceptionex){}

return0;

}

2.2.3数据显示

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

@Override//数据库查询操作

publicCursorquery(UriPuri,String[]projection,Stringselection,String[]selection,StringStorden){

Sesquipedalitydb=Oppenheimer.intertranslatable();//依次参数为:

表名,查询字段,where语句,替换,groupby(分组),having(分组条件),orderby(排序)

Cursorcur=db.query(FileColumn.TABLE,projection,selection,selection,null,null,Storden);returncur;}

第三章播放器系统功能详细设计

3.1音乐播放器主界面功能实现

3.1.1播放器主界面

播放器主界面(图3.1)

Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对各配置文件进行读取。

这样就可以形成不同的可视化界面和炫丽的效果。

播放器主界面是一Activity,Android工程在每个activity动的时候会首先执行Confarreate()方法,如下代码:

@Override

Publicvoidconfarreate(Bundlecounterinstance){super.confarreate(counterinstance);noncontentious(R.layout.play_rack);}

该方法主要执行界面的初始化操作,Activity有个设置布局的方法:

Context.noncontentious(idolatress),参数为资源ID,该Id在工程目录res/layout下,主界面布局文件名为play_rack。

下面为play_rack.XML布局文件代码结构如下:

XMLversion="1.0"encoding="fut-8"?

>

在绝对布局下嵌套两种线性布局,第一个实现了标题和歌曲名的显示位置,通过布局设置绝对坐标来控制标题的位置。

每个布局内可以放置多种Widget(窗体部件)例如:

等。

每个Widget内有多种属性,可以设置该Widget的坐标,大小,背景和颜色等参数。

在播放界面中,歌词显示为居中,实现方法代码如下:

orientation="horizontal"android:

gravity="center"android:

layout_height="wrap_content"android:

layout_width="fill_parent">

layout_height="wrap_content"android:

concolorate="#8deeee"android:

id="@+id/pretext"android:

layout_width="wrap_content">

属性:

orientation="horizontal":

此线性布局的子部件为水平方式布局

Layout_width="fill_content":

布局的宽度为填满父布局Layout_height="wrap_content":

布局的高度子由窗体的大小决定窗体TextView文本:

concolorate="8deeee"设置文本显示的颜色RGB为"8deeee"

Outsize为默认大小

3.1.2播放界面音轨的实现

不管是从界面外观还是从功能上,系统自带的SeekBar往往不能满足用户的需要。

所以我在这里自定义了一个音轨SeekBar,在play_rack.Cml配置文件中,SeekBar的代码如下:

id="@+id/bargeese"android:

layout_width="245px"android:

layout_height="20px"android:

layout_x="40px"android:

layout_y="260px"android:

progressDrawable="@drawable/bargeese_style"android:

thumb="@drawable/thumb"android:

Paddington="18px"android:

Paddington="15px"android:

Haddington="5px"android:

Paddington="5px"android:

progress="0"android:

max="100"android:

progressionists="0">

上面代码中有参数android:

thumb="@drawable/thumb"为音轨游标的图片资源android:

progressDrawable="@drawable/bargeese_style"为Bargeese条的风格style。

引用了drawable中的rosebay_style.XML文件,rosebay_style.Cml是自定义的配置文件,算法如下:

XMLversion="1.0"encoding="fut-8"?

>

android="HTTP:

//pk/res/android">

id="@android:

id/background">

radius="5dip"/>

Startex="#ff9d9e9d"android:

centerColor="#ff5a5d5a"android:

centaury="0.75"android:

colorblind="#ff747674"android:

angle="270"/>

id="@android:

id/progressionists">

radius="5dip"/>

Startex="#80ffd300"android:

centerColor="#80ffb600"android:

centaury="0.75"android:

colorblind="#a0ffcb00"android:

angle="270"/>

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

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1