基于Android平台的音乐播放器设计报告v3.doc
《基于Android平台的音乐播放器设计报告v3.doc》由会员分享,可在线阅读,更多相关《基于Android平台的音乐播放器设计报告v3.doc(23页珍藏版)》请在冰豆网上搜索。
-.
题目:
基于Android平台的音乐播放器设计报告
学生:
何双双
学号:
指导教师:
邓江沙
目录
第一章引言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.服务绑定activity6
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.setOnpletionListener(mpleteListener);//绑定之后
}
4.1.2.服务绑定activity
MediaPlayer.OnpletionListenermpleteListener=newMediaPlayer.OnpletionListener()//实例化一个绑定监听器的匿名类
{
publicvoidonpletion(MediaPlayermp)//完成绑定后
{
broadcastEvent(PLAY_PLETED);//广播消息
}
};
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(){