基于安卓的音乐播放器需求分析说明书
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int cmd = MusicService.CMD_NEXT;
i.pBiblioteka BaidutExtra("cmd", cmd);
sendBroadcast(i);
}
});
//设置SeekBar的监听事件
sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
y
n
主键
songid
integer
n
y
albumid
Integer
n
y
duration
integer
n
y
musicname
varchar(10)
n
y
artist
char
n
y
data
char
n
y
folder
char
n
y
musicnamekey
char
n
y
artistkey
char
n
y
favorite
integer
}
i.putExtra("cmd", cmd); //将命令广播出去
sendBroadcast(i); //发送广播
} });
4
流程图:
N N
Y Y
程序逻辑:
当用户点击上一曲\下一曲按钮时,播放器就对当前播放事
件监听,从音乐列表中转换音乐,从而控制当前音乐的上一曲\
下一曲,关键代码如下:
//上一曲键事件监听器
}
}
});
}
4
流程图:
N
Y
Y
N
Y
N
程序逻辑:
声音有两个按钮控制,一个增加声音和一个减少声音。通过
这两个按钮用户可以调节播放音乐的声音大小,用AudioManager
组件对声音的大小进行增减,最大为7,最小为0。当用户点击
声音按钮时,若是增按钮,对声音进行增加,若是减按钮对声音
进行减小。
部分代码如下:
i.putExtra("cmd", cmd); sendBroadcast(i);
}
});
//下一曲键事件监听器
nextBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(MusicService.MUSIC_CONTROL);
int cmd = MusicService.CMD_SEEK;//发送拖动的命令
i.putExtra("cmd", cmd);
i.putExtra("progress", progress);//讲拖动的进度传进Service
sendBroadcast(i);
sb.setProgress(progress);
{ //当停止拖动时调用的方法
public void onStopTrackingTouch(SeekBar seekBar) { }
public void onStartTrackingTouch(SeekBar seekBar) { }
//当SeekBar拖动时会执行此方法
public void onProgressChanged(SeekBar seekBar, int prog,
public void onClick(View v) {
audiomanage.adjustVolume(AudioManager.ADJUST_RAISE, 0);
volume=audiomanage.getStreamVolume(
AudioManager.STREAM_RING);
if(volume<7){
版本控制:Tortoise SVN
项目管理工具:Microsoft Project2000
7
8
本项目使用SQLiteDatabase安卓内置数据库。
数据库名称:musicstore_new
表music_info
Name
Field
Primary Key
Can it be empty?
Notes
_id
integer
卷号
卷内编号
密级
项目编号:
Boom!音乐播放器
需求分析说明书
项目承担部门:2012管工班第三组
完成日期:2015.09.04
本文档使用部门:
评审负责人(签名):
评审日期:
1.
1.1
本文档用于描述音乐播放器APP的总体架构,用于指导各app的具体实施。本文档的用户包括系统设计师、开发人员、测试人员、评审组成员。
各界面色彩基调相似。操作习惯、风格相似。
4.
歌曲界面控制可分为:播放/暂停/停止模块、上一曲/下一曲
模块、音量模块。
4
流程图:
N N
Y Y
N
Y
程序逻辑:
当用户点击播放\暂停\停止按钮时,播放器就对当前播放事
件监听从而控制当前音乐的播放\暂停\停止,部分关键代码如下:
//播放按钮
playPauseBtn.setOnClickListener(new OnClickListener() {
n
y
favorite
integer
n
y
创建表语句
private static final String TABLE_FAVORITE = "favorite_info";
create table "
+ TABLE_FAVORITE
+ " (_id integer,"
+ " songid integer, albumid integer, duration integer, musicname varchar(10), "
+ "artist char, data char, folder char, musicnamekey char, artistkey char, favorite integer)"
1.2
此说明书适用于音乐播放器app项目。
1.3
手机用户
2.
3.
主要建设功能:导入本地歌曲文件、选择显示歌词、更换皮肤、在线试听、在线下载(资源在服务器上)、选择显示歌手简介、选择显示专辑简介、选择推荐专辑内其他本地没有的歌曲、显示乐库歌曲排行榜、新建歌单、管理歌单等功能。
交互设计:提供良好的交互设计、操作简单快速、按钮及菜单设计合理,合理引导用户使用。
Note
_id
integer
y
n
songid
integer
n
y
albumid
integer
n
y
duration
integer
n
y
musicname
Varchar(10)
n
y
artist
char
n
y
data
char
n
y
folder
char
n
y
musicnamekey
char
n
y
artistkey
char
n
y
创建表语句
private static final String TABLE_MUSIC = "music_info";
db.execSQL("create table "
+ TABLE_MUSIC
+ " (_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ " songid integer, albumid integer, duration integer, musicname varchar(10), "
boolean fromUser) {
//fromUser参数意思是判断拖动是否是用户用手拖动的
if (fromUser == true && Math.abs(prog - progress) >= 5) {
progress = prog;
Intent i = new Intent(MusicService.MUSIC_CONTROL);
+ "album_name char, album_id integer, number_of_songs integer, album_art char)"
create table "
+ TABLE_ARTIST
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, artist_name char, number_of_tracks integer)"
cmd = MusicService.CMD_PAUSE; //发送暂停的命令
} else if (status == MusicService.STATUS_STOPPED) {
cmd = MusicService.CMD_START; //发送播放的命令
} else {
cmd = MusicService.CMD_RESUME; //继续播放的命令
create table "
+ TABLE_FOLDER
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, folder_name char, folder_path char)"
表favorite_info
Name
Field
Primary Key
Can it be empty?
完善的日志,所有操作数据库记录日志。
个性化:提供完全个性化的播放平台,为不同用户定制符合其喜好的歌曲及歌单,为其提供不同的主题样式、播放模式、播放菜单。
用户记忆:提供记住用户名及记住密码功能,用户可选择记忆期限:周、月、半年、年、或永远。
app能够承受一次下载同事下载5首歌曲、在播放同时下载的并发压力。
//获取点击事件
voiceUp = (ImageButton)findViewById(R.id.music_voic_up);
//音量增加
voiceDown (ImageButton)findViewById(R.id.music_voic_down);
//音量增减小执行事件
audiomanage=(AudioManager)getSystemService(
表folder_info
Name
Field
Primary Key
Can it be empty?
Note
_id
integer
y
N
folder_name
char
n
y
folder_path
char
n
Y
创建表语句
private static final String TABLE_FOLDER = "folder_info"
Volume=audiomanage.getStreamVolume(
AudioManager.STREAM_RING);
if(volume>0){
volume--;
audiomanage.setRingerMode(volume);
}
}
});
//声音控制按钮 声音增加
voiceUp.setOnClickListener(new OnClickListener() {
+ "artist char, data char, folder char, musicnamekey char, artistkey char, favorite integer)"); "
表album_info
Name
Field
Primary Key
Can it be empty?
Note
_id
public void onClick(View v) {
int cmd = 0;
Intent i = new Intent(MusicService.MUSIC_CONTROL);
//判断当前的状态值是什么状态如果是播放状态
if (status == MusicService.STATUS_PLAYING) {
integer
y
n
album_name
char
n
y
album_id
char
n
y
album_art
char
n
y
创建表语句
private static final String TABLE_ALBUM = "album_info";
"create table "
+TABLE_ALBUM
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, "
volume++;
audiomanage.setRingerMode(volume);
}
}
});
5.
6
系统采用J2EE技术,基于Liferay4.2.2开源门户框架进行开发,具体开发环境如下:
JDK:1.7
开发工具:Eclipse10、MyEclipse10
应用服务器:Tomcat 8.0
数据库服务器:MySQL5.6
Context.AUDIO_SERVICE);
voiceDown.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
audiomanage.adjustVolume(
AudioManager.ADJUST_LOWER,0);
previousBtn.setOnClickListener (new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(MusicService.MUSIC_CONTROL);
int cmd = MusicService.CMD_PREV;//发送前一首的命令
i.pBiblioteka BaidutExtra("cmd", cmd);
sendBroadcast(i);
}
});
//设置SeekBar的监听事件
sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
y
n
主键
songid
integer
n
y
albumid
Integer
n
y
duration
integer
n
y
musicname
varchar(10)
n
y
artist
char
n
y
data
char
n
y
folder
char
n
y
musicnamekey
char
n
y
artistkey
char
n
y
favorite
integer
}
i.putExtra("cmd", cmd); //将命令广播出去
sendBroadcast(i); //发送广播
} });
4
流程图:
N N
Y Y
程序逻辑:
当用户点击上一曲\下一曲按钮时,播放器就对当前播放事
件监听,从音乐列表中转换音乐,从而控制当前音乐的上一曲\
下一曲,关键代码如下:
//上一曲键事件监听器
}
}
});
}
4
流程图:
N
Y
Y
N
Y
N
程序逻辑:
声音有两个按钮控制,一个增加声音和一个减少声音。通过
这两个按钮用户可以调节播放音乐的声音大小,用AudioManager
组件对声音的大小进行增减,最大为7,最小为0。当用户点击
声音按钮时,若是增按钮,对声音进行增加,若是减按钮对声音
进行减小。
部分代码如下:
i.putExtra("cmd", cmd); sendBroadcast(i);
}
});
//下一曲键事件监听器
nextBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(MusicService.MUSIC_CONTROL);
int cmd = MusicService.CMD_SEEK;//发送拖动的命令
i.putExtra("cmd", cmd);
i.putExtra("progress", progress);//讲拖动的进度传进Service
sendBroadcast(i);
sb.setProgress(progress);
{ //当停止拖动时调用的方法
public void onStopTrackingTouch(SeekBar seekBar) { }
public void onStartTrackingTouch(SeekBar seekBar) { }
//当SeekBar拖动时会执行此方法
public void onProgressChanged(SeekBar seekBar, int prog,
public void onClick(View v) {
audiomanage.adjustVolume(AudioManager.ADJUST_RAISE, 0);
volume=audiomanage.getStreamVolume(
AudioManager.STREAM_RING);
if(volume<7){
版本控制:Tortoise SVN
项目管理工具:Microsoft Project2000
7
8
本项目使用SQLiteDatabase安卓内置数据库。
数据库名称:musicstore_new
表music_info
Name
Field
Primary Key
Can it be empty?
Notes
_id
integer
卷号
卷内编号
密级
项目编号:
Boom!音乐播放器
需求分析说明书
项目承担部门:2012管工班第三组
完成日期:2015.09.04
本文档使用部门:
评审负责人(签名):
评审日期:
1.
1.1
本文档用于描述音乐播放器APP的总体架构,用于指导各app的具体实施。本文档的用户包括系统设计师、开发人员、测试人员、评审组成员。
各界面色彩基调相似。操作习惯、风格相似。
4.
歌曲界面控制可分为:播放/暂停/停止模块、上一曲/下一曲
模块、音量模块。
4
流程图:
N N
Y Y
N
Y
程序逻辑:
当用户点击播放\暂停\停止按钮时,播放器就对当前播放事
件监听从而控制当前音乐的播放\暂停\停止,部分关键代码如下:
//播放按钮
playPauseBtn.setOnClickListener(new OnClickListener() {
n
y
favorite
integer
n
y
创建表语句
private static final String TABLE_FAVORITE = "favorite_info";
create table "
+ TABLE_FAVORITE
+ " (_id integer,"
+ " songid integer, albumid integer, duration integer, musicname varchar(10), "
+ "artist char, data char, folder char, musicnamekey char, artistkey char, favorite integer)"
1.2
此说明书适用于音乐播放器app项目。
1.3
手机用户
2.
3.
主要建设功能:导入本地歌曲文件、选择显示歌词、更换皮肤、在线试听、在线下载(资源在服务器上)、选择显示歌手简介、选择显示专辑简介、选择推荐专辑内其他本地没有的歌曲、显示乐库歌曲排行榜、新建歌单、管理歌单等功能。
交互设计:提供良好的交互设计、操作简单快速、按钮及菜单设计合理,合理引导用户使用。
Note
_id
integer
y
n
songid
integer
n
y
albumid
integer
n
y
duration
integer
n
y
musicname
Varchar(10)
n
y
artist
char
n
y
data
char
n
y
folder
char
n
y
musicnamekey
char
n
y
artistkey
char
n
y
创建表语句
private static final String TABLE_MUSIC = "music_info";
db.execSQL("create table "
+ TABLE_MUSIC
+ " (_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ " songid integer, albumid integer, duration integer, musicname varchar(10), "
boolean fromUser) {
//fromUser参数意思是判断拖动是否是用户用手拖动的
if (fromUser == true && Math.abs(prog - progress) >= 5) {
progress = prog;
Intent i = new Intent(MusicService.MUSIC_CONTROL);
+ "album_name char, album_id integer, number_of_songs integer, album_art char)"
create table "
+ TABLE_ARTIST
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, artist_name char, number_of_tracks integer)"
cmd = MusicService.CMD_PAUSE; //发送暂停的命令
} else if (status == MusicService.STATUS_STOPPED) {
cmd = MusicService.CMD_START; //发送播放的命令
} else {
cmd = MusicService.CMD_RESUME; //继续播放的命令
create table "
+ TABLE_FOLDER
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, folder_name char, folder_path char)"
表favorite_info
Name
Field
Primary Key
Can it be empty?
完善的日志,所有操作数据库记录日志。
个性化:提供完全个性化的播放平台,为不同用户定制符合其喜好的歌曲及歌单,为其提供不同的主题样式、播放模式、播放菜单。
用户记忆:提供记住用户名及记住密码功能,用户可选择记忆期限:周、月、半年、年、或永远。
app能够承受一次下载同事下载5首歌曲、在播放同时下载的并发压力。
//获取点击事件
voiceUp = (ImageButton)findViewById(R.id.music_voic_up);
//音量增加
voiceDown (ImageButton)findViewById(R.id.music_voic_down);
//音量增减小执行事件
audiomanage=(AudioManager)getSystemService(
表folder_info
Name
Field
Primary Key
Can it be empty?
Note
_id
integer
y
N
folder_name
char
n
y
folder_path
char
n
Y
创建表语句
private static final String TABLE_FOLDER = "folder_info"
Volume=audiomanage.getStreamVolume(
AudioManager.STREAM_RING);
if(volume>0){
volume--;
audiomanage.setRingerMode(volume);
}
}
});
//声音控制按钮 声音增加
voiceUp.setOnClickListener(new OnClickListener() {
+ "artist char, data char, folder char, musicnamekey char, artistkey char, favorite integer)"); "
表album_info
Name
Field
Primary Key
Can it be empty?
Note
_id
public void onClick(View v) {
int cmd = 0;
Intent i = new Intent(MusicService.MUSIC_CONTROL);
//判断当前的状态值是什么状态如果是播放状态
if (status == MusicService.STATUS_PLAYING) {
integer
y
n
album_name
char
n
y
album_id
char
n
y
album_art
char
n
y
创建表语句
private static final String TABLE_ALBUM = "album_info";
"create table "
+TABLE_ALBUM
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, "
volume++;
audiomanage.setRingerMode(volume);
}
}
});
5.
6
系统采用J2EE技术,基于Liferay4.2.2开源门户框架进行开发,具体开发环境如下:
JDK:1.7
开发工具:Eclipse10、MyEclipse10
应用服务器:Tomcat 8.0
数据库服务器:MySQL5.6
Context.AUDIO_SERVICE);
voiceDown.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
audiomanage.adjustVolume(
AudioManager.ADJUST_LOWER,0);
previousBtn.setOnClickListener (new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(MusicService.MUSIC_CONTROL);
int cmd = MusicService.CMD_PREV;//发送前一首的命令