Android课程设计软件设计说明书音频播放器.docx
《Android课程设计软件设计说明书音频播放器.docx》由会员分享,可在线阅读,更多相关《Android课程设计软件设计说明书音频播放器.docx(21页珍藏版)》请在冰豆网上搜索。
Android课程设计软件设计说明书音频播放器
1引言
1.1编写目的
现在社会快速,繁重紧张,音乐欣赏可以使人放松,听音乐也可以提高人的情操。
本项目的目的是开发一款可以播放音乐文件的音乐播放器,并可以控制暂停,控制播放。
音量调节,关闭播放器等功能。
本软件适用于各种人。
随着见算计的广泛应用,手机市场的迅速发展,各种音频视频资源也在网上广为流传。
这些资源看似平常,但已经渐渐成为人们生火中不可缺少高的一部分了。
于是各种手机播放器也随着发展起来了,但是市面上的手机播放器的软件大部分是最求外观花哨,功能庞大。
这样虽然好但是对手机资源造成的很大的浪费,比如CPU,内存使用过高。
在用户需要多操作时受到不小的影响,带来了许多不便,许多功能上形同虚设!
我认为术业有专攻,做音乐播放器,就要最好音乐部分。
针对以上弊端,选择开发界面简单模块化的,功能明确,方便实用,不占内存。
1.2背景说明
文中所介绍的视频播放器是基于安卓手机平台开发的一款多功能的播放器,实现了基本的播放,快进快退停止视频调节音量的功能,用户可以自由拖动那个进度条,调节屏幕缩放比列,设置屏幕背景,设置视频播放模式。
任外还有任意级目录,播放列表有缩略图,并且能够排序,最重要的是该播放器还实现了查看天气预报的功能。
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歌曲
主菜单
退出程序
程序退出
关于
版权信息
表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_margin