安卓音乐播放器软件设计说明书格式 sya.docx

上传人:b****4 文档编号:24332552 上传时间:2023-05-26 格式:DOCX 页数:26 大小:269.63KB
下载 相关 举报
安卓音乐播放器软件设计说明书格式 sya.docx_第1页
第1页 / 共26页
安卓音乐播放器软件设计说明书格式 sya.docx_第2页
第2页 / 共26页
安卓音乐播放器软件设计说明书格式 sya.docx_第3页
第3页 / 共26页
安卓音乐播放器软件设计说明书格式 sya.docx_第4页
第4页 / 共26页
安卓音乐播放器软件设计说明书格式 sya.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

安卓音乐播放器软件设计说明书格式 sya.docx

《安卓音乐播放器软件设计说明书格式 sya.docx》由会员分享,可在线阅读,更多相关《安卓音乐播放器软件设计说明书格式 sya.docx(26页珍藏版)》请在冰豆网上搜索。

安卓音乐播放器软件设计说明书格式 sya.docx

安卓音乐播放器软件设计说明书格式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:

id="@+id/liebiao1"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

layout_weight="1"

android:

background="@drawable/liebiao"

android:

layout_marginLeft="2dp"

android:

layout_marginBottom="2dp"/>

android:

id="@+id/zengyin1"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

layout_weight="1"

android:

background="@drawable/jiayin"

android:

layout_marginLeft="2dp"

android:

layout_marginBottom="2dp"/>

android:

id="@+id/jianyin1"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

layout_weight="1"

android:

background="@drawable/jianyin"

android:

layout_marginLeft="2dp"

android:

layout_marginBottom="2dp"/>

android:

id="@+id/guanji"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

layout_weight="1"

android:

background="@drawable/guanji"

android:

layout_marginLeft="2dp"

android:

layout_marginBottom="2dp"/>

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1