计算机综合实践报告Word文档格式.docx

上传人:b****5 文档编号:19136613 上传时间:2023-01-04 格式:DOCX 页数:9 大小:424.37KB
下载 相关 举报
计算机综合实践报告Word文档格式.docx_第1页
第1页 / 共9页
计算机综合实践报告Word文档格式.docx_第2页
第2页 / 共9页
计算机综合实践报告Word文档格式.docx_第3页
第3页 / 共9页
计算机综合实践报告Word文档格式.docx_第4页
第4页 / 共9页
计算机综合实践报告Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

计算机综合实践报告Word文档格式.docx

《计算机综合实践报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机综合实践报告Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

计算机综合实践报告Word文档格式.docx

 

1

1.1功能需求分析 

1.1.1播放器的基本功能 

1.1.2功能需求时序分析 

2

1.2系统结构流程图 

3

1.3系统界面需求 

1.4开发环境 

4

2、音乐播放器详细设计与实现 

2.1播放器界面设计 

2.2获取并解析XML文件 

6

2.3下载MP3文件 

9

2.4播放MP3文件 

10

1、系统需求分析

1.1功能需求分析

根据项目的目标,我们可获得项目系统的基本需求,一下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,播放器的基本控制需求。

以下分别描述:

1.1.1播放器的基本功能

退出

图4-1播放器基本控制图

在播放器运行时,主界面是服务器的歌曲列表,可以点击刷新列表,也可以点击歌曲名,开始下载歌曲,然后点击本地歌曲列表可以显示出本地的歌曲文件,点击文件名则跳转到播放界面,在播放界面可以控制歌曲的播放、暂停、停止以及返回本地歌曲列表。

1.1.2功能需求时序分析

图4-2音乐播放器的时序图

从以上时序图可以看到播放器中消息发送及调用过程。

1.2系统结构流程图

图4-3音乐播放器系统流程图

以上显示了播放器的各个流程。

1.3系统界面需求

播放器界面要求布局合理,简约,颜色舒适,控制按钮友好,能让用户一眼就能看出各个按钮的作用及操作方法。

能实现要求的功能,但又不重复。

要考虑到不同手机屏幕大小可能不一样,应尽量兼容大多数手机屏幕尺寸,使之显示无障碍。

1.4开发环境

操作系统:

Windows7x64。

开发环境:

EclipseVersion:

IndigoServiceRelease1 

ADTVersion:

16.0.1

运行环境:

Android2.2

2、音乐播放器详细设计与实现

2.1播放器界面设计

首先是创建一个主界面MainActivity,它使用TabHost布局,这里面的TabWidget控件控制着两个Activity的互相切换:

一个是Mp3PlayerListActivity(图5-1),这个Activity是一打开程序就显示的服务器歌曲列表。

图5-1Mp3PlayerListActivity

另一个是LocalActivity(图5-2),这个Activity是点击TabWidget控件中的“本地”按钮才会显示的本地歌曲列表界面。

图5-2LocalActivity

在LocalActivity中点击列表中的歌曲名就会调出PlayerActivity(图5-3),这个Activity就是播放音乐时的界面,其中有一些对播放器进行控制的控件。

图5-3PlayerActivity

详细设计代码见附录。

2.2获取并解析XML文件

因为打开播放器首先就要刷新服务器上的歌曲列表,那么我们就得获取服务器上的歌曲列表文件,即XML文件。

实现代码如下:

//根据URL下载文本文件,必须是文本文件,因为返回值是文本中的字符

publicStringdownload(StringurlStr){

StringBuildersb=newStringBuilder();

Stringline=null;

BufferedReaderbuffer=null;

try{

//创建一个URL对象

URLurl=newURL(urlStr);

//创建一个http连接

HttpURLConnectionurlConn=(HttpURLConnection)url

.openConnection();

//使用io读取数据

buffer=newBufferedReader(newInputStreamReader(

urlConn.getInputStream()));

//一行行的读取数据

while((line=buffer.readLine())!

=null){

sb.append(line);

}

}catch(Exceptione){

e.printStackTrace();

}finally{

//关闭buffer节约资源

buffer.close();

}catch(Exceptione2){

e2.printStackTrace();

//将读取到的文本文件中的内容传回去

returnsb.toString();

从服务器上下载到XML中的文本后就要开始解析,在开始解析之前我们先来了解一下服务器上用来保存歌曲信息的XML文件。

图5-2XML文件结构图

从上图中可以看出所有的歌曲信息是包含在一个resources标签当中的,而每一个resource标签就代表一首歌曲,其中的id、mp3.name、lrc.name、lrc.size标签都分表代表了歌曲的一条信息。

在我所设计的播放器中所用到是实现SAX(SimpleAPIforXML)接口的方式来解析XML文件,解析的实现代码如下:

//开始解析XML文件中的每一个标签时调用的方法

@Override

publicvoidstartElement(Stringuri,StringlocalName,StringqName,

Attributesattr)throwsSAXException{

//将从XML文件中读取到的标签名赋值给tagName

tagName=localName;

//如果标签名为resource时就创建一个mp3Info的实例对象

if(tagName.equals("

resource"

)){

mp3Info=newMp3Info();

//解析完XML文件中的每一个标签时调用的方法

publicvoidendElement(Stringuri,StringlocalName,StringqName)

throwsSAXException{

//每次读取到resource标签就代表一首歌曲的信息已经完成,并将次mp3Info加到infos当中

if(qName.equals("

infos.add(mp3Info);

//每读完一个标签就清空tagName,以免出错

tagName="

"

;

//读取XML文件中没一个标签中内容

publicvoidcharacters(char[]ch,intstart,intlength)

//将读取到的内容赋值给temp

Stringtemp=newString(ch,start,length);

//将每个标签中的内容赋值给mp3Info实例对象中相应的变量

id"

mp3Info.setId(temp);

}elseif(tagName.equals("

mp3.name"

mp3Info.setMp3Name(temp);

mp3.size"

mp3Info.setMp3Size(temp);

lrc.name"

mp3Info.setLrcName(temp);

lrc.size"

mp3Info.setLrcSize(temp);

2.3下载MP3文件

根据URL的地址从服务器上下载文件,因为下载不可能是一瞬间就能完成的事,如果我们在主线程中进行下载,那么下载过程中程序就会出现假死状态,因为它在等待文件下载完成,下载完成才能执行后面的操作,所以我们需要用一个线程来进行下载任务,实现代码如下:

//每次用户点击ListActivity当中的一个条目时,就会调用该方法

publicintonStartCommand(Intentintent,intflags,intstartId){

//从Intent对象当中将Mp3Info对象取出

Mp3Infomp3Info=(Mp3Info)intent.getSerializableExtra("

mp3Info"

);

//生成一个下载线程,并将Mp3Info对象作为参数传递到线程对象当中

DownloadThreaddownloadThread=newDownloadThread(mp3Info);

//启动新线程

Threadthread=newThread(downloadThread);

thread.start();

returnsuper.onStartCommand(intent,flags,startId);

classDownloadThreadimplementsRunnable{

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

当前位置:首页 > 法律文书 > 起诉状

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

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