安卓音乐播放器软件设计说明书格式 sya.docx
《安卓音乐播放器软件设计说明书格式 sya.docx》由会员分享,可在线阅读,更多相关《安卓音乐播放器软件设计说明书格式 sya.docx(26页珍藏版)》请在冰豆网上搜索。
![安卓音乐播放器软件设计说明书格式 sya.docx](https://file1.bdocx.com/fileroot1/2023-5/26/5b248753-9a55-4595-8969-ffb0dfc9483d/5b248753-9a55-4595-8969-ffb0dfc9483d1.gif)
安卓音乐播放器软件设计说明书格式sya
1引言
1.1编写目的
现在社会快速,繁重紧张,音乐欣赏可以使人放松,听音乐也可以提高人的情操。
本项目的目的是开发一款可以播放音乐文件的音乐播放器,并可以控制暂停,控制播放。
音量调节,关闭播放器等功能。
本软件适用于各种人。
随着见算计的广泛应用,手机市场的迅速发展,各种音频视频资源也在网上广为流传。
这些资源看似平常,但已经渐渐成为人们生火中不可缺少高的一部分了。
于是各种手机播放器也随着发展起来了,但是市面上的手机播放器的软件大部分是最求外观花哨,功能庞大。
这样虽然好但是对手机资源造成的很大的浪费,比如CPU,内存使用过高。
在用户需要多操作时受到不小的影响,带来了许多不便,许多功能上形同虚设!
我认为术业有专攻,做音乐播放器,就要最好音乐部分。
针对以上弊端,选择开发界面简单模块化的,功能明确,方便实用,不占内存。
1.2背景说明
说明:
1.待开发的软件系统的名称:
MY音乐
2.任务提出者:
中北大学软件学院
3.开发者:
杜晓阳
4.用户:
中北大学软件学院
1.3定义
AndroidSDK(SoftwareDevelopmentKit)软件开发工具包
1.4参考资料
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。
它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。
低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。
另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
Android在未公开之前常被传闻为Google电话或gPhone。
大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。
到了2013年11月,Google开始发表自家品牌手机电话的Nexus One。
目前最新SDK版本为Android 4.4。
2总体设计
2.1需求规定
功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了用户的业务需求。
用户需求文档描述了用户使用产品必须要完成的任务。
针对音乐播放器分别对音乐播放、在线音乐播放及会员特权的换肤等功能进行详细的调研和分析,总结出如下的用户需求信息。
(1)界面美观简洁。
(2)运行方便,操作简单。
(3)经济适用,功能充实。
2.2运行环境
2.2.1设备
(1)支持Android1.6版本以上的安卓系统手机。
(2)支持屏幕任何尺寸的安卓手机。
(3)支持安卓模拟器运行。
2.2.2支持软件
(1)支持安卓操作系统软件。
(2)支持装有安卓模拟器的windows操作系统。
(3)支持安卓模拟器
2.3基本设计概念和处理流程
功能用例图如下
图2-3功能用例图
表3-1播放用例
用例名称:
播放
参与者:
用户
目标:
用户点击播放音乐列表中的歌曲
前置条件:
播放器正在运行
基本事件流:
1.用户单击列表中歌曲
2.播放器将播放列表中的点击的歌曲
表3-2暂停用例
用例名称:
暂停
参与者:
用户
目标:
使得用户可以暂停正在播放的歌曲
前置条件:
歌曲正在播放且未停止和暂停
基本事件流:
1.用户单击“暂停”按钮
2.播放器将暂停当前的歌曲
表3-4上一首/下一首用例
用例名称:
上一首/下一首
参与者:
用户
目标:
使得用户可以点播上一首或下一首音乐
前置条件:
歌曲正在播放或歌曲暂停中
基本事件流:
1.用户单击“上一首或下一首”按钮
2.播放器将播放上一首歌曲或下一首歌曲
表3-5音乐列表用例
用例名称:
音乐列表
参与者:
用户
目标:
使得用户可以进入音乐列表
前置条件:
程序在运行
基本事件流:
1.用户单击“音乐”分区
2.播放器进入音乐列表
2.4结构设计
2.4.1结构
程序流程图如下
图2-4-1系统流程图
表2-4-1功能关系表
功能类别
子功能
子功能
音乐列表
播放列表
菜单
退出播放
关于
音乐列表
点击播放->进入播放界面
播放界面
播放
播放歌曲->线程启动->时间更新
暂停
暂停歌曲->线程暂停->时间暂停
初曲
寻找音乐列表第一首歌曲
终曲
寻找音乐列表最后一首歌曲
上一首
寻找当前播放的上一ID歌曲
下一首
寻找当前播放下一ID歌曲
主菜单
退出程序
程序退出
关于
版权信息
1.音乐模块需求
在音乐模块中我们需要获取歌曲的名称和音乐的时间长度,获取完成后列表排列。
表2-4-2音乐列表用例
用例名称:
音乐列表
参与者:
用户
目标:
使得音乐列表显示歌曲名称,右边显示时间长度
前置条件:
播放器在主界面
基本事件流:
1.用户单击主界面上音乐模块
2.音乐列表显示以音乐排列的列表
2.4.2功能需求与程序的关系
表2-4-2功能关系表
功能类别
子功能
子功能
音乐列表
播放列表
菜单
退出播放
关于
音乐列表
点击播放->进入播放界面
播放界面
播放
播放歌曲->线程启动->时间更新
暂停
暂停歌曲->线程暂停->时间暂停
初曲
寻找音乐列表第一首歌曲
终曲
寻找音乐列表最后一首歌曲
上一首
寻找当前播放的上一ID歌曲
下一首
寻找当前播放下一ID歌曲
主菜单
退出程序
程序退出
关于
版权信息
2.4.3尚未问决的问题
功能不是很完善,不能实现歌词功能,文件必须是在SD卡中MYmusic文件下才能播放。
2.5接口设计
2.5.1用户接口
触摸结构,当用户触摸屏幕上的按钮,按钮就开始工作。
2.5.2外部接口
(1)软件接口:
操作系统:
Windows xp 支持环境:
Android 2.1版本 开发环境:
Eclipse 3.5 ADT 0.9
(2)硬件接口:
支持USB2.0。
3系统出错处理设计
3.1出错信息
出错提示
原因
解决方法
程序运行停止
手机内存不足或程序被中断
重启应用
手机内存不足
手机内存不足
清理手机内存
找不到SD卡
没有文件路径
装载SD卡,重启
音乐不能播放
文件损坏或播放路径不对
将音乐文件放在指定文件夹中
3.2补救措施
说明故障出现后可能采取的变通措施,包括:
1.程序运行停止:
解决办法:
重启应用
2.手机内存不足:
解决办法:
清理手机内存
3.找不到SD卡:
解决办法:
装载SD卡,重启
4.音乐不能播放:
解决办法:
将音乐文件放在指定文件夹中
3.3.系统维护设计
为了系统维护的方便而在程序内部设计中作出了安排,本软件是音乐播放软件,与手机内存相关联。
在维护上只涉及到音乐跟新问题,还有主题界面的更换。
由于与手机内存相关联,所以在维护上不必花费太多资源。
4音乐播放器主界面功能实现
4.1程序描述
设计程序主界面,增加主界面的美观,以及和用户之间的交互性。
通过UI设计UML文件设计,使用控件布局,代码相结合。
完美设计出主界面。
4.2功能
主界面明确了当,直接的显示出可操作的按钮。
让用户更加简单,使用本软件。
4.3算法
界面如下:
图5-3-1主界面
Uml布局代码如下
xmlversion="1.0"encoding="utf-8"?
>
android="
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
orientation="vertical"
android:
gravity="fill"
android:
background="#000000">
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
orientation="vertical">
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
orientation="horizontal"
android:
layout_weight="80">
android:
id="@+id/list"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
background="#E61344"
android:
layout_weight="25"
android:
layout_marginBottom="2dp"
>
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
orientation="vertical"
android:
layout_weight="75">
android:
layout_width="match_parent"
android:
layout_height="wrap_content"
android:
orientation="horizontal"
android:
layout_weight="5">
android:
id="@+id/bofang"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_weight="1"
android:
background="@drawable/bofang"
android:
layout_marginRight="1dp"
android:
layout_marginBottom="2dp"/>
android:
id="@+id/zanting"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_weight="1"
android:
background="@drawable/zanting"
android:
layout_marginLeft="1dp"
android:
layout_marginBottom="2dp"/>
android:
layout_width="match_parent"
android:
layout_height="wrap_content"
android:
orientation="horizontal"
android:
layout_weight="5">
android:
id="@+id/shangyiqu"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_weight="1"
android:
background="@drawable/shangyiqu"
android:
layout_marginRight="1dp"
/>
android:
id="@+id/xiayiqu"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_weight="1"
android:
background="@drawable/xiyishou"
android:
layout_marginLeft="1dp"/>
Java代码如下
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
}
4.4注释设计
1.加在模块首部的注释:
:
主界面的设计
2.加在各分枝点处的注释:
增音控件按钮,减音按钮,下一曲按钮,上一曲按钮,播放暂停按钮。
4.5测试计划
运行程序,显示如果和图5-3-1一样,说明界面设计合理,不一样说明界面设计不合理
5音乐列表设计
5.1程序描述
播放列表中存放音乐文件名字,点击文件名字,即可播放音乐,列表存放的方式是数列模式。
5.2功能
播放列表有存放音乐文件,点击音乐文,即可播放。
5.3算法
UML代码:
android:
id="@+id/list"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
background="#E61344"
android:
layout_weight="25"
android:
layout_marginBottom="2dp"
>
Java代码:
privateListaudioList=newArrayList();//要播放的音频列表
@SuppressLint("SdCardPath")
privatevoidaudioList(){
getFiles("/sdcard/");//获取SD卡上的全部音频文件
ArrayAdapteradapter=newArrayAdapter(this,
android.R.layout.simple_list_item_1,audioList);//创建一个适配器
ListViewlistview=(ListView)findViewById(R.id.list);//获取布局管理器中添加的ListView组件
listview.setAdapter(adapter);//将适配器与ListView关联
//当单击列表项时播放音乐
listview.setOnItemClickListener(newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView
>listView,Viewview,
intposition,longid){
currentItem=position;//将当前列表项的索引值赋值给currentItem
playMusic(MUSIC_PATH+audioList.get(currentItem));//调用playMusic()方法播放音乐
}
});
}
5.4注释设计
要播放的音频列表
获取SD卡上的全部音频文件
将适配器与ListView关联
当单击列表项时播放音乐
将当前列表项的索引值赋值给currentItem
调用playMusic()方法播放音乐
5.5测试计划
运行程序,扫描音乐,点击列表文件,听音乐,是否有音乐播放。
6扫描音乐设计
6.1程序描述
本段程序是将SD卡上的音乐文件,进行扫描,并将文件加载到播放列表中。
6.2功能
点击扫描音乐按钮,进行音乐文件扫描,扫描SD卡上的所有MP3格式的音乐文件。
将扫描后的音乐文件加载到播放列表中。
6.3算法
UML代码:
android:
id="@+id/bofang"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_weight="1"
android:
background="@drawable/bofang"
android:
layout_marginRight="1dp"
android:
layout_marginBottom="2dp"/>
Java代码:
privatevoidgetFiles(Stringurl){
Filefiles=newFile(url);//创建文件对象
File[]file=files.listFiles();
try{
for(Filef:
file){//通过for循环遍历获取到的文件数组
if(f.isDirectory()){//如果是目录,也就是文件夹
getFiles(f.getAbsolutePath());//递归调用
}else{
if(isAudioFile(f.getName())){//如果是音频文件
audioList.add(f.getName());//将文件的路径添加到list集合中
}
}
}
}catch(Exceptione){
e.printStackTrace();//输出异常信息
}
}
privatestaticString[]imageFormatSet=newString[]{".mp3"};//合法的音频文件格式
//判断是否为音频文件
privatestaticbooleanisAudioFile(Stringpath){
for(Stringformat:
imageFormatSet){//遍历数组
if(path.contains(format)){//判断是否为有合法的音频文件
returntrue;
}
}
returnfalse;
}
6.4注释设计
创建文件对象
通过for循环遍历获取到的文件数组
如果是音频文件
将文件的路径添加到list集合中
合法的音频文件格式
判断是否为音频文件
6.5测试设计
运行程序,当成点击扫描音乐按钮,等待程序扫描,判断是否有音乐文件在列表中。
如果有,说明本段程序实用。
否则则不适用,需要再次设计。
7上一曲/下一曲设计
7.1程序描述
本段程序实现音乐上一曲下一曲的播放,当点击上一曲或下一曲的时候,播放器会对播放列表的文件进行上一曲或下一曲的播放。
7.2功能
当点击上一曲或下一曲的时候,播放器会对播放列表的文件进行上一曲或下一曲的播放。
7.3算法
UML代码:
android:
id="@+id/shangyiqu"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"
android:
layout_weight="1"
android:
background="@drawable/shangyiqu"
android:
layout_ma