基于Android平台的音乐播放器设计报告vWord文件下载.doc
- 文档编号:1462587
- 上传时间:2023-04-30
- 格式:DOC
- 页数:19
- 大小:395.50KB
基于Android平台的音乐播放器设计报告vWord文件下载.doc
《基于Android平台的音乐播放器设计报告vWord文件下载.doc》由会员分享,可在线阅读,更多相关《基于Android平台的音乐播放器设计报告vWord文件下载.doc(19页珍藏版)》请在冰点文库上搜索。
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.用户单击“播放”按钮
暂停
使得用户可以暂停正在播放的歌曲
歌曲正在播放且未停止和暂停
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(){
//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获取全部音频文件代码
ContentResolverresolver=pApp.getContentResolver();
//取得papp的一个resolver实例
publicCursorgetAllSongs(){//取得所有音频文件
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(){//播放和暂停按钮的事件绑定
mMusicPlayerService.pause();
//暂停播放
mPlayPauseButton.setText(R.string.play);
//改变控件文字
mMusicPlayerService.start();
//服务没启动则启动
//改变控件文字为暂停
mStopButton.setOnClickListener(newButton.OnClickListener(){//停止按钮的事件绑定
mTextView.setVisibility(View.VISIBLE);
//改变播放按钮为不可见
mStopButton.setVisibility(View.INVISIBLE);
//停止播放
IntentFilterfilter=newIntentFilter();
filter.addAction(MusicPlayerService.PLAYER_PREPARE_END);
//
filter.addAction(MusicPlayerService.PLAY_COMPLETED);
registerReceiver(mPlayerEvtReceiver,filter);
//放入后台
4.音乐播放服务
MediaPlayer.OnCompletionListenermCompleteListener=newMediaPlayer.OnCompletionListener()//实例化化一个listener匿名类
publicvoidonCompletion(MediaPlayermp)//完成绑定时调用
MediaPlayer.OnPreparedListenermPrepareListener=newMediaPlayer.OnPreparedListener()//绑定钱调用
publicvoidonPrepared(MediaPlayermp)
{
broadcastEvent(PLAYER_PREPARE_END);
//广播事件
privatevoidbroadcastEvent(Stringwhat)
Intenti=newIntent(what);
sendBroadcast(i);
publicvoidonCreate()
mMediaPlayer=newMediaPlayer();
//实例化一个播放类
mMediaP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 平台 音乐 播放 设计 报告