音乐播放器的详细设计说明Word下载.docx
《音乐播放器的详细设计说明Word下载.docx》由会员分享,可在线阅读,更多相关《音乐播放器的详细设计说明Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
![音乐播放器的详细设计说明Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/22/0a5947b9-5ee5-4acb-ae65-6083ffb0d322/0a5947b9-5ee5-4acb-ae65-6083ffb0d3221.gif)
[4]《音乐播放器需求分析书》
[5]《音乐播放器总体设计说明书》
1.4项目开发计划
实施计划:
阶段名称
负责人
需求分析
杨挺、李雪梅
总体设计
李雪梅、杨挺
详细设计
软件测试
在技术方面,编程知识比较缺乏,对有些与项目相关的软件
不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库
的构架和软件功能的设计。
2.总体设计
2.1项目目的
本项目的目的是开发一个可以播放主流的音乐文本格式的
播放器。
设计的主要实现功能是播放MP3等格式的音乐文件,
并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下
一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取
存储卡播放等多种播放控制,界面简明,操作简单。
软件系统检测到错误行为时,报告错误,并提示处理操作。
2.2软件运行环境
硬件:
Android操作系统手机
系统软件:
Android2.2--4.0版本
支撑软件:
Eclipse7.5、ADT1.5
2.3需求概述
根据项目,我们可以获得项目系统的基本需求,从功能需求、
界面需求、性能需求、可靠性要求四个方面来描述系统的需求,
再分别对各个需求进行分析。
2.4条件与限制
开发人员开发经验严重不足;
编程人员对开发工具不熟悉,编程经验非常有限;
具备运行环境。
2.5软件结构
3.程序描述
3.1歌曲界面控制
歌曲界面控制可分为:
播放/暂停/停止模块、上一曲/下一曲
模块、音量模块。
3.1.1播放/暂停/停止模块
流程图:
NN
YY
N
Y
程序逻辑:
当用户点击播放\暂停\停止按钮时,播放器就对当前播放事
件监听从而控制当前音乐的播放\暂停\停止,部分关键代码如下:
//播放按钮
playPauseBtn.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
intcmd=0;
Intenti=newIntent(MusicService.MUSIC_CONTROL);
//判断当前的状态值是什么状态如果是播放状态
if(status==MusicService.STATUS_PLAYING){
cmd=MusicService.CMD_PAUSE;
//发送暂停的命令
}elseif(status==MusicService.STATUS_STOPPED){
cmd=MusicService.CMD_START;
//发送播放的命令
}else{
cmd=MusicService.CMD_RESUME;
//继续播放的命令
}
i.putExtra("
cmd"
cmd);
//将命令广播出去
sendBroadcast(i);
//发送广播
}});
3.1.2上一曲\下一曲模块
NN
YY
当用户点击上一曲\下一曲按钮时,播放器就对当前播放事
件监听,从音乐列表中转换音乐,从而控制当前音乐的上一曲\
下一曲,关键代码如下:
//上一曲键事件监听器
previousBtn.setOnClickListener(newOnClickListener(){
intcmd=MusicService.CMD_PREV;
//发送前一首的命令
}
});
//下一曲键事件监听器
nextBtn.setOnClickListener(newOnClickListener(){
intcmd=MusicService.CMD_NEXT;
//设置SeekBar的监听事件
sb.setOnSeekBarChangeListener(newOnSeekBarChangeListener()
{//当停止拖动时调用的方法
publicvoidonStopTrackingTouch(SeekBarseekBar){}
publicvoidonStartTrackingTouch(SeekBarseekBar){}
//当SeekBar拖动时会执行此方法
publicvoidonProgressChanged(SeekBarseekBar,intprog,
booleanfromUser){
//fromUser参数意思是判断拖动是否是用户用手拖动的
if(fromUser==true&
&
Math.abs(prog-progress)>
=5){
progress=prog;
intcmd=MusicService.CMD_SEEK;
//发送拖动的命令
progress"
progress);
//讲拖动的进度传进Service
sb.setProgress(progress);
});
}
3.1.3音量模块
流程图:
程序逻辑:
声音有两个按钮控制,一个增加声音和一个减少声音。
通过
这两个按钮用户可以调节播放音乐的声音大小,用AudioManager
组件对声音的大小进行增减,最大为7,最小为0。
当用户点击
声音按钮时,若是增按钮,对声音进行增加,若是减按钮对声音
进行减小。
部分代码如下:
//获取点击事件
voiceUp=(ImageButton)findViewById(R.id.music_voic_up);
//音量增加
voiceDown(ImageButton)findViewById(R.id.music_voic_down);
//音量增减小执行事件
audiomanage=(AudioManager)getSystemService(
Context.AUDIO_SERVICE);
voiceDown.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
audiomanage.adjustVolume(
AudioManager.ADJUST_LOWER,0);
Volume=audiomanage.getStreamVolume(
AudioManager.STREAM_RING);
if(volume>
0){
volume--;
audiomanage.setRingerMode(volume);
//声音控制按钮声音增加
voiceUp.setOnClickListener(newOnClickListener(){
audiomanage.adjustVolume(AudioManager.ADJUST_RAISE,0);
volume=audiomanage.getStreamVolume(
if(volume<
7){
volume++;
4.软件测试
根据制定的软件实施计划,对软件进行测试,主要目的为了找出软件中存在的各种错误和缺陷,设计出更高效的软件测试方案。
本项目的该音乐软件采用动态执行测试,对软件的功能,结构进行测试,通过运行该软件来检验程序的各个功能是否能够正确运行,各个模块之间能否进行无差错的转换,能否实现对歌曲的无差错播放,控制。