基于Android平台的音乐播放器设计报告v.doc

上传人:wj 文档编号:1239203 上传时间:2023-04-30 格式:DOC 页数:19 大小:395.50KB
下载 相关 举报
基于Android平台的音乐播放器设计报告v.doc_第1页
第1页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第2页
第2页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第3页
第3页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第4页
第4页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第5页
第5页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第6页
第6页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第7页
第7页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第8页
第8页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第9页
第9页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第10页
第10页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第11页
第11页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第12页
第12页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第13页
第13页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第14页
第14页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第15页
第15页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第16页
第16页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第17页
第17页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第18页
第18页 / 共19页
基于Android平台的音乐播放器设计报告v.doc_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于Android平台的音乐播放器设计报告v.doc

《基于Android平台的音乐播放器设计报告v.doc》由会员分享,可在线阅读,更多相关《基于Android平台的音乐播放器设计报告v.doc(19页珍藏版)》请在冰点文库上搜索。

基于Android平台的音乐播放器设计报告v.doc

题目:

基于Android平台的音乐播放器设计报告

学生姓名:

何双双

学号:

12108010851

指导教师:

邓江沙

目录

第一章引言 1

1.1项目背景 1

1.2编写目的 1

第二章系统需求分析 2

2.1功能需求(用例图分析) 2

2.1.1播放器的用例图 2

2.1.2用例分析 3

第三章概要设计 4

3.1软件播放流程图 4

3.2软件类图 5

第四章详细设计 6

4.1MusicInfoController类 6

4.1.1.类启动 6

4.1.2.服务绑定activity 6

4.2MusicInfoController类 6

4.2.1获得播放文件列表 7

4.3MusicList类 7

4.3.1播放 7

4.3.2暂停/播放 7

4.3.3停止 8

4.4MusicPlayerApp类 8

4.4.1单例模式 8

第五章系统实现 10

5.1软件部署 10

5.2启动软件 10

5.3播放界面 11

第六章结论 12

附录一:

代码 13

1.获取全部音频文件代码 13

2.绑定歌曲列表到listview控件 13

3.软件初始化 14

4.音乐播放服务 15

第一章引言

1.1项目背景

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

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

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

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

Android:

是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。

这使得越来越多的人关注这个操作系统。

本次作品音乐播放器就是基于Android平台的。

1.2编写目的

现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

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

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

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

第二章系统需求分析

2.1功能需求(用例图分析)

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

以下分别描述:

2.1.1播放器的用例图

假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作,启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下

图2.1播放器基本用例图

2.1.2用例分析

用例名称:

启动软件

参与者:

用户

目标:

使得用户启动软件并加载手机和sd卡上的音频文件到播放列表

前置条件:

基本事件流:

1.用户启动软件

2.播放器将播放列表中的当前的歌曲

用例名称:

播放

参与者:

用户

目标:

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

前置条件:

播放器正在运行

基本事件流:

1.用户单击“播放”按钮

2.播放器将播放列表中的当前的歌曲

用例名称:

暂停

参与者:

用户

目标:

使得用户可以暂停正在播放的歌曲

前置条件:

歌曲正在播放且未停止和暂停

基本事件流:

1.用户单击“暂停”按钮

2.播放器将暂停当前的歌曲

用例名称:

停止

参与者:

用户

目标:

使得用户可以停止正在播放的歌曲

前置条件:

歌曲正在播放或暂停

基本事件流:

1.用户单击“停止”按钮

2.播放器将停止当前播放的歌曲

用例名称:

推出

参与者:

用户

目标:

使得用户退出或者后台播放音乐

前置条件:

程序在运行

基本事件流:

1.用户按返回键

2.播放器退出或者进入后台播放

第三章概要设计

3.1软件播放流程图

Step1.启动软件后,软件自动检索手机和sd卡的音频文件,并组织显示成列表.

Step2.点击列表的歌曲名字。

Step3.播放音乐。

Step4.点击暂停,音乐暂停

Step5.点击播放转到step3

Step6.点击停止停止播放音乐

Step7.点击退出,若音乐处于播放状态,则音乐转向后台播放,界面退出。

Step8.点击退户,若音乐处于暂停或者停止状态,直接退出。

图3.1音乐播放器流程图

3.2软件类图

系统设计了4个类,分别是播放音乐的服务类MusicPlayerService;主要用于获取android系统中的音频文件,并提供访问接口的MusicInfoController类;继承于ListActivity,主要用于显示歌曲列表的MusicList类和程序的生存类MusicPlayerApp类。

音乐播放器

类MusicInfoController

类MusicList

类MusicPlayerApp

类MusicPlayerService

图3.2软件类图

图3.2音乐播放器类图

第四章详细设计

4.1MusicInfoController类

这个类继承于service,是播放音乐的服务类。

播放音乐,暂停音乐,停止播放等操作都封装在这个类中。

主要的执行动作有:

4.1.1.类启动

onCreate(){

mMediaPlayer=newMediaPlayer();//分配一个播放对象

mMediaPlayer.setOnPreparedListener(mPrepareListener);//绑定之前

mMediaPlayer.setOnCompletionListener(mCompleteListener);//绑定之后

}

4.1.2.服务绑定activity

MediaPlayer.OnCompletionListenermCompleteListener=newMediaPlayer.OnCompletionListener()//实例化一个绑定监听器的匿名类

{

publicvoidonCompletion(MediaPlayermp)//完成绑定后

{

broadcastEvent(PLAY_COMPLETED);//广播消息

}

};

4.2MusicInfoController类

这个类主要用于获取android系统中的音频文件,并提供访问接口,它是一个单例类。

4.2.1获得播放文件列表

privateCursorquery(Uriuri,String[]prjs,Stringselections,String[]selectArgs,Stringorder){

ContentResolverresolver=pApp.getContentResolver();//取得一个连接对象

if(resolver==null){

returnnull;

}

returnresolver.query(uri,prjs,selections,selectArgs,order);

}

publicCursorgetAllSongs(){

returnquery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER);//查询ContentResolver的所有音频文件

}

4.3MusicList类

改类继承于ListActivity,主要用于显示歌曲列表,并且封装部分操作,以及与父级目标通信。

4.3.1播放

protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){//歌曲列表的某项被点击

super.onListItemClick(l,v,position,id);

if(mCursor==null||mCursor.getCount()==0){

return;

}

mCursor.moveToPosition(position);//游标移动到当前路径

Stringurl=mCursor.getString(mCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));//取得绝对路径

mMusicPlayerService.setDataSource(url);//传递绝对路径

mMusicPlayerService.start();//播放音乐

}

4.3.2暂停/播放

mPlayPauseButton.setOnClickListener(newButton.OnClickListener(){

publicvoidonClick(Viewv){

if(mMusicPlayerService!

=null&&mMusicPlayerService.isPlaying()){

mMusicPlayerService.pause();//音乐播放的服务暂停

mPlayPauseButton.setText(R.string.play);//改变按钮文字

}elseif(mMusicPlayerService!

=null){

mMusicPlayerService.start();//如果已经是暂停,则播放音乐

mPlayPauseButton.setText(R.string.pause);//改变文字

}

}

});

4.3.3停止

mStopButton.setOnClickListener(newButton.OnClickListener(){

publicvoidonClick(Viewv){

//Performactiononclick

if(mMusicPlayerService!

=null){

mTextView.setVisibility(View.VISIBLE);//改变文字状态

mPlayPauseButton.setVisibility(View.INVISIBLE);//隐藏按钮

mStopButton.setVisibility(View.INVISIBLE);//隐藏停止按钮

mMusicPlayerService.stop();//后台音乐停止播放

}

}

});

4.4MusicPlayerApp类

该类继承与Application,是程序的生存类。

可以标识音乐播放器的生命周期,包括音乐在后台播放等。

4.4.1单例模式

publicvoidonCreate()

{

super.onCreate();

mMusicInfoController=MusicInfoController.getInstance(this);//返回该类的一个唯一实例

}

publicMusicInfoControllergetMusicInfoController()

{

returnmMusicInfoController;

}

第五章系统实现

5.1软件部署

系统编译生成apk文件,将apk文件拷到手机或者sd卡中,直接打开即可安装,或者安装360手机助手通过usb调试的方式进行安装。

图5.1软件图标

5.2启动软件

启动软件后,加载歌曲列表现在这个界面上,如01表示歌曲名,unknown表示歌曲的演唱者

图5.2软件启动界面

5.3播放界面

从加载的歌曲列表中点击要播放的歌曲,开始播放

图5.3音乐播放界面

第六章结论

(1)通过对Android手机平台的音乐播放器软件的开发,使我对Android音乐播放器系统的整体设计有一个深入的了解,对整个流程也会有一个清晰的认识。

开发Android音乐播放器,要抓住开发的核心部分,音乐播放器大体由播放主界面、播放列表、菜单、播放设置、文件浏览、歌曲搜索六大核心组成。

(3)本次程序设计,对播放器的系统结构框架做了精心的构思与设计,采用主要开发工具是Eclips4.0+Java语言的支持,AndroidDevelopmentTool的插件,和AndroidSDK2.1版本的全面结合,才使整个音乐播放器系统得以实现。

附录一:

代码

1获取全部音频文件代码

privateCursorquery(Uriuri,String[]prjs,Stringselections,String[]selectArgs,Stringorder){

ContentResolverresolver=pApp.getContentResolver();//取得papp的一个resolver实例

if(resolver==null){

returnnull;

}

returnresolver.query(uri,prjs,selections,selectArgs,order);

}

publicCursorgetAllSongs(){//取得所有音频文件

returnquery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

}

2绑定歌曲列表到listview控件

publicvoidbindView(Viewview,Contextcontext,Cursorcursor){

super.bindView(view,context,cursor);

TextViewtitleView=(TextView)view.findViewById(android.R.id.text1); TextViewartistView=(TextView)view.findViewById(android.R.id.text2); titleView.setText(cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE)));//绑定歌曲名

artistView.setText(cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)));//绑定演唱者

}

3软件初始化

setContentView(R.layout.list_layout);

MusicPlayerAppmusicPlayerApp=(MusicPlayerApp)getApplication();//取得一个实例

mMusicInfoController=(musicPlayerApp).getMusicInfoController();

startService(newIntent(this,MusicPlayerService.class));//启动服务

bindService(newIntent(this,MusicPlayerService.class),mPlaybackConnection,Context.BIND_AUTO_CREATE);//绑定服务

mTextView=(TextView)findViewById(R.id.show_text);//取得显示文本控件

mPlayPauseButton=(Button)findViewById(R.id.play_pause_btn);//取得开始和暂停控件

mStopButton=(Button)findViewById(R.id.stop_btn);//取得停止控件

mPlayPauseButton.setOnClickListener(newButton.OnClickListener(){//播放和暂停按钮的事件绑定

publicvoidonClick(Viewv){

if(mMusicPlayerService!

=null&&mMusicPlayerService.isPlaying()){

mMusicPlayerService.pause();//暂停播放

mPlayPauseButton.setText(R.string.play);//改变控件文字

}elseif(mMusicPlayerService!

=null){

mMusicPlayerService.start();//服务没启动则启动

mPlayPauseButton.setText(R.string.pause);//改变控件文字为暂停

}

}

});

mStopButton.setOnClickListener(newButton.OnClickListener(){//停止按钮的事件绑定

publicvoidonClick(Viewv){

if(mMusicPlayerService!

=null){

mTextView.setVisibility(View.VISIBLE);

mPlayPauseButton.setVisibility(View.INVISIBLE);//改变播放按钮为不可见

mStopButton.setVisibility(View.INVISIBLE);

mMusicPlayerService.stop();//停止播放

}

}

});

IntentFilterfilter=newIntentFilter();

filter.addAction(MusicPlayerService.PLAYER_PREPARE_END);//

filter.addAction(MusicPlayerService.PLAY_COMPLETED);

registerReceiver(mPlayerEvtReceiver,filter);//放入后台

4.音乐播放服务

MediaPlayer.OnCompletionListenermCompleteListener=newMediaPlayer.OnCompletionListener()//实例化化一个listener匿名类

{

publicvoidonCompletion(MediaPlayermp)//完成绑定时调用

{

broadcastEvent(PLAY_COMPLETED);//广播消息

}

};

MediaPlayer.OnPreparedListenermPrepareListener=newMediaPlayer.OnPreparedListener()//绑定钱调用

{

publicvoidonPrepared(MediaPlayermp)

{

broadcastEvent(PLAYER_PREPARE_END);//广播事件

}

};

privatevoidbroadcastEvent(Stringwhat)

{

Intenti=newIntent(what);

sendBroadcast(i);//广播消息

}

publicvoidonCreate()

{

super.onCreate();

mMediaPlayer=newMediaPlayer();//实例化一个播放类

mMediaP

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

当前位置:首页 > PPT模板 > 商务科技

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

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