您好,欢迎来到微智科技网。
搜索
您的当前位置:首页详细设计文档

详细设计文档

来源:微智科技网


0913111班

媒体播放器

组长:栗波

组员:林迪文,申旭,李辰 分工:

李辰:需求分析、系统分析、前期编程、模块设计、测试 栗波:编程、界面设计、详细设计、测试、功能与界面融合 林迪林:网络后台管理部分,完成在线播放支持. 申旭:图表设计、测试、修改、播放器操作说明

媒体播放器 ...................................................................................................................... 1 1、 引言.......................................................................................................................... 3

1.1编写目的 ............................................................................................................ 3

1.2 问题定义............................................................................................................ 3 1.3可行性分析 ......................................................................................................... 4

1.3.1、技术可行性 ............................................................................................ 4 1.3.2、经济可行性 ............................................................................................ 4 1.3.3、法律可行性 ............................................................................................ 5 1.4、术语定义及参考资料 ........................................................................................ 5 2、功能概述 .................................................................................................................... 5

2.1、目标 ................................................................................................................. 5 2.2、系统技术 .......................................................................................................... 6 3、软件需求分析 ............................................................................................................. 6

3.1、调查用户需求 ................................................................................................... 6

3.1.1、播放器的基本情况 ................................................................................. 6 3.1.2、播放器的要求 ........................................................................................ 6 3.2、软件功能的设计和划分 ..................................................................................... 7 3.2.1、功能需求 ...................................................................................................... 7

3.2.2、界面需求 ................................................................................................. 8 3.2.3、性能需求 ................................................................................................. 9 3.2.4、可靠性需求 .......................................................................................... 10 3.2.5、运行环境需求 ...................................................................................... 10

4、软件结构化设计 ........................................................................................................ 10

4.1、概要设计 .........................................................................................................11

4.1.1、系统流程图 ...........................................................................................11 4.1.2、层次结构图 .......................................................................................... 13 4.1.3、主要函数及实现功能.............................................................................. 13 4.2、详细设计 ........................................................................................................ 15 5、结构化实现 ............................................................................................................... 21

5.1、///界面设计................................................................................................... 21 5.2、部分代码 ........................................................................................................ 22 6、 总结........................................................................................................................ 22

1、引言

随着计算机的普及,其各种应用技术也随之迅速发展,多媒体技

术就是发展最迅速的应用技术之一。多媒体工具也大大的拓展了计算机的应用领域,是非计算机专业人员最常使用的应用工具之一。借助高速发展的互联网络,各种各样的媒体播放器将多媒体概念表现的淋漓尽致,潜移默化地影响着人们的生产和生活。

1.1编写目的

为明确软件需求,安排软件规划与进度,分配成员的任务,完成

软件的开发与测试,撰写本文档,以供开发人员参考。

1.2 问题定义

媒体播放器总的实现目标是:实现、播放、暂停、停止、切换上下歌曲等基本播放功能;实现播放列表中的菜单、添加、删除、保存等功能;实现更改播放器背景图片等功能;连接网络实现媒体文件搜索,查找,在线播放等其他功能。

现在有越来越多的播放器实现的基本功能有限,往往是只能播放音乐或播放视频。因此,本小组决定编写一个媒体播放器,要求在实现播放音乐(能显示歌词)的同时,实现播放电影,真正实现多媒体播放器;并实现界面的个性化,是用户拥有一个与众不同的媒体播放器。

1.3可行性分析

1.3.1、技术可行性

到目前为止我们学过多门语言:C、C++、java等,但是我们最终决定C#来编写播放器,用Java语言来写后台管理部分,并用套接字将两者连接起来。

本软件的设计是在Windows XP,Windows7操作系统环境下运行的。

就技术力量来说,栗波的知识面较广,动手能力较强;林迪林的理论性及编程能力较强;申旭计算机常识较多,善于提出问题;并且,媒体播放器已经很普遍,我们对其结构及功能的实现比较了解,我们可以完成此次开发。

开发过程中遇到的一些问题,我们也会一一面对,网上有很多相关资料,我们也会经常和老师及其他小组讨论。

1.3.2、经济可行性

我们这个软件主要是用来测试一下我们团队的合作开发能力以

及计算机基础知识掌握运用。没有什么经济可行性,但是我们相信,有一天我们做的软件会走向市场,并占有一席之地。

结论:根据以上的可行性研究,我们小组认为开发此软件的条件已经具备,可以开始进行开发。

1.3.3、法律可行性

整个系统由于是自行开发,自行使用,拥有完全自主的知识产权,所以系统本身不存在法律上的版权争议。在服务器软件方面,应该使用正版软件,因为整个系统尽管是开发自用,但上传下载等操作是要依靠Internet的,一旦服务器连接到Internet 上,非正版软件的使用会引发不必要的纠纷。

结论:根据以上的可行性研究,我们小组认为开发此软件的条件已经具备,可以开始进行开发。

1.4、术语定义及参考资料

(1)《软件工程(第三版)》张海藩 倪宁编,人民邮电出版社 (2)《WPF编程宝典》王德才著,清华大学出版社 (3)《WPF自学手册》电子工业出版社

(4)《JSP 网站开发详解》唐友国 湛洪波,电子工业出版社

(5)《C#网络通信》梅晓冬 颜烨青,清华大学出版社 (6)其他网络资源

2、功能概述

2.1、目标

设计出一款可以播放大多数媒体文件、功能完善、使用方便、界

面漂亮简洁的媒体播放器。

2.2、系统技术

虽然本组成员学过c、Java、vb.net等几门语言,但基于C#、Java

容易理解的基础上,本软件主要采用C#、Java设计实现,同时运用其他语言的思维逻辑。

3、软件需求分析

3.1、调查用户需求

3.1.1、播放器的基本情况

目前市场上存在很多媒体播放器,大体分为音乐播放器、视频播放器和网络视频。很多音乐播放器无法播放视频,例如用的最多的酷狗和千千静听;大多数视频播放器听歌又不太方便,因为它们的界面不够美观,而且最主要的是不能够显示歌词,同时那些软件往往很大,最少也要几十兆字节,占用过多内存,影响计算机运行速率。

3.1.2、播放器的要求

本软件是在音乐播放器的基础上,附加视频播放功能。启动时,要求界面美观,能让用户基本控制音乐的播放。

在播放视频时,可以自动调节播放窗口的大小,同时可以隐藏播放列表。

同时要求本软件在最大程度上允许用户更改界面风格。

3.2、软件功能的设计和划分

3.2.1、功能需求

在了解和使用千千静听、酷狗等音乐播放器以及暴风影音等媒体播放器的基础上,本软件提出以下基本功能:

(1)能够播放当前的大多数格式的媒体文件,包括mp3、WMA、RMVB等格式的音频和视频文件。

(1)能够显示当前播放的媒体文件信息:在启动窗口显示正在播放的文件名和当前时间进度,当正在播放音频文件时显示随即波形动画。

(2)能够实现基本的播放控制功能:即实现“播放状态控制”(播放、暂停、继续播放、停止),“进度控制”(进度条与当前正在播放的文件同步,可更改播放进度),“音量控制”(不影响系统音量的同时可控制音量大小),“歌曲选择”(上一首,下一首),“循环模式”(单曲循环播放、顺序循环播放、无模式(即播放完以后,停止))。 (3)能够实现媒体播放列表功能:“添加本地媒体文件”,“删除列表”(播放列表中某一选定文件)、“清空列表”、“保存列表(在关闭时自动保存到XML中)”、双击列表中某项实现播放功能。 (4)能够连接到网络:通过按钮“E”,实现连接到IIS服务器上的虚拟目录中搜索媒体文件。

(5)能够在安装时自动生成文件夹以保存播放列表信息;并且在关闭媒体播放器时自动保存播放器当前信息。

(6)能够实现用户自定义界面风格,包括字体样式、颜色、背景图片等,实现个性化。

3.2.2、界面需求

随着多媒体播放软件的发展,用户对播放软件的界面提出更高

的要求。用户对界面的要求不再仅仅局限于易操作等特点,个人是更加倾向于美观,个性化,简约等。本软件基于以上需求作出以下分析: (1)播放列表窗口的收缩性:用户可以根据自己的需要收起播放列表窗口(例如在看电影时或者不需要显示播放列表时),这样可以有效的节省界面空间,使界面简洁、美观、方便使用,增加软件的便捷性和趣味性。

(2)自定义皮肤:这也是本播放器的一大特色。用户可以根据自己的喜好或习惯随意更改界面的颜色或图片,从而使得界面更加个性化,风格多样化,趣味化。然后通过某一操作,实现歌词全屏,滚动字体全屏,使整体风格统一。这一点是目前为止其他播放器还没有完全实现的功能,其他的播放器仅仅只能改变整体颜色,即使能够添加图片也只是改变边框的图形而已,无法连通播放列表的背景一起随之改变。而我们就要努力突破,实现自定义皮肤的完整性和统一性。 (3)变换显示模式:可以选择普通显示,最小化,迷你化,最大化,全屏;其中,普通显示即正常的显示状态,最小化显示是系统任务栏显示,迷你化是收起播放列表,最大化是在播放视频或电影时的

全屏显示。

(4)美化按钮:一改传统的控制按钮,是本软件更加个性化,更加优美化,使用户不由自主的喜欢使用我们的播放器。一是设计出不同以往的按钮图形;例如播放按钮,传统的播放器都是按钮上一个正方形表示播放,两条短竖线表示暂停;我们会设计出不同以往的按钮,当鼠标滑过按钮区域时,按钮动态增大等。

(5)美化菜单按钮:在播放列表中,摒弃以往的文字描述,使用形象生动的图像按钮显示菜单按钮。“+”取代“添加”按钮,“-”取代“删除”按钮,卡通衣服按钮取代“换肤”按钮,三条横线按钮表示“循环模式”按钮,向下的三角按钮表示收起或打开播放列表。 (6)播放列表框:可以收起或打开播放列表框,增加播放器的趣味性和个性化。

(7)个性进度条:设计不同以往的进度条和音量控制条及其滑块,使整个播放器风格统一又区别其他播放器,力求本播放器简约时尚。

(8)显示时间模块:能免显示当前媒体的时间以及总的时间,增加本软件的实用性和趣味性。

(9)音量控制直观性:用音量控制条来控制软件的声音,而不是系统的声音,更加的直观更加人性化。

3.2.3、性能需求

本播放器对整体的性能要求不是很高,只需实现以下几点:

(1)稳定性好; (2)易操作;

(3)软件响应时间适中:当要求播放时,软件响应时间不能超过1秒;要求暂停时,软件响应时间不能超过0.5秒;进行各种操作时,要求软件响应时间不得超过1.5秒。 (4)界面友好、漂亮

3.2.4、可靠性需求

软件能持续运行,不影响其他程序的使用,不占用过多内存,不会造成死机等问题。

3.2.5、运行环境需求

操作系统:Windows 2000、Windows XP、Windows Vista、

Windows 7

操作系统语言:简体、繁体、英文

4、软件结构化设计

软件结构化设计主要分为概要设计和详细设计两个阶段,主要依据是上文的分析。

4.1、概要设计

概要设计将系统需求转换为未来软件的设计,对软件进行分解从而划分为模块,并设计出预定功能的模块结

4.1.1、系统流程图

根据上文的需求分析,现阶段设计系统流程图来描述软件的大致流程。

系统总体功能流程为:启动播放器,加载基本状态信息,然后初始化基本设置,开始播放媒体文件,在进行用户所需的窗口操作,用户选择是否保存基本状态信息,退出播放器。系统流程图如下所示:

启动播放器加载基本状态信息初始化设置文件播放窗体操作保存基本状态信息退出播放器图4.1-1 系统流程图

加载基本状态信息:系统自动读取播放器媒体文件(播放列表信息)和系统配置文件,然后将读取的信息提交系统设置模块,设置模块在进行相关的初始化设置。

初始化设置:使用加载的信息设置播放列表、设置系统基本状态信息。设置。设置基本装填信息包括窗体显示设置,播放音量设置,播放模式设置(普通模式、最小化模式、迷你模式、全屏模式)。

主窗体操作:包括播放器的所有操作,如播放控制操作,播放列表操作等。

4.1.2、层次结构图

播放器播放列表播放控制上传窗口控制添加文件删除文件清空列表下载文件保存列表上一首下一首循环控制音量控制播放状态最大化最小化关闭顺序播放循环播放增大音量减小音量播放暂停停止图4.1.2-1

4.1.3、主要函数及实现功能

本软件中的只要函数有:

自定义程序集:信息框1(这里没有用系统自带的,主要就是实现提示信息总是最前端显示)

__启动窗口_创建完毕() ‘当启动窗口启动的时候,载入列表窗口。同时读入列表窗口里上次关闭时候保存的歌曲列表,和自己定义的图片

_最小化按钮_被单击() ‘窗口最小化到系统任务栏 _全屏菜单按钮_被单击() ‘实现全屏播放

_关闭按钮_被单击() ‘关闭窗口的同时播放列表框里的音 乐表也被保存在运行目录里的文件里,此文件格式是XML

_播放器1_打开状态被改变() ‘取当前媒体的信息,例如音乐的时间长度,然后赋值给进度条

_时钟1_周期事件() ‘主要是实现进度条跟着音乐的时间走 _时钟2_周期事件() ‘取当前媒体的时间,以及歌词的显示 _时钟3_周期事件() ‘滚动字体的位置设置’ _时钟4_周期事件() ‘实现垃圾的实时回收 _多功能音量条_位置被改变() ’调节音乐音量大小

_暂停按钮1_被单击() ’实现暂停功能,并把播放按钮设为 不 可视,暂停按钮可视

_播放按钮1_被单击() ‘实现播放功能,并把暂停按钮设为不可视,播放按钮可视

_停止按钮4_被单击() ’实现停止功能

_下一首_被单击() ‘播放下一首歌曲,如果已是最后一曲则不作任何响应

_上一首_被单击() ’播放上一首歌曲,如果没有音乐或已经是第一首则不作任何响应 列表窗(程序集2)

_添加本地文件_被选择() ’添加本地文件 _打开文件按钮3_被单击() ‘弹出添加菜单

_播放列表框_被双击() ’双击播放当前行音乐 _删除菜单_被单击() ‘删除当前行 _删除全部菜单_被单击() ‘列表清空 _播放列表框_鼠标右键被按下() ’右键快捷菜单 播放列表框

_搜寻窗口_创建完毕() ‘当搜索窗口被打开,把其弹出窗口位置设置在靠启动窗口右边,便于操作 窗口程序集(关于窗口)

_关于窗口_创建完毕() ‘当关于窗口被打开,把其弹出窗口位置设置在靠启动窗口右边,便于操作

4.2、详细设计

根据需求分析和概要设计,详细设计分为下列几个阶段: (1)基本播放控制功能的实现 (2)播放列表的功能实现 (3)附加功能。

1.用户使用播放器进行的基本播放操作。 播放控制流程图如下:

播放暂停停止上一首播放控制进度控制快退音量控制循环模式下一首快进增大单曲循环减小顺序播放单曲播放播放控制模块流程图

用户可以通过界面按钮或鼠标操作实现以下功能:双击列表中的某一项实现播放,右键弹出播放列表菜单,实现添加,删除,清空,保存功能。

添加文件时,用代码倒取文件名在顺序取实现消除文件存储路径;单击“保存”后,系统自动生成文件夹,保存相关信息。 2.播放列表功能图如下:

添加文件删除文件播放列表双击列表中某项目播放文件保存列表清空列表播放列表模块功能图

3.程序状态图如下:

关闭单机界面取消登录界面NO是否为合法用户注销文件列表联机界面选择文件下载NO用户是否可下载上传播放文件选择界面NO是否是可上传类型下载界面文件下载次数改变信息输入界面OK上传至服务器管理员检查用户加分Yes是否合格?NO删除

4.数据库表格如下:

FilmTable: 字段中文名 编号 电影名称 电影 备注 等级 点击次数 上传人的名字 上传时间 类型 导演 MusicTable 字段中文名 编号 音乐名称 音乐文件 备注 点击次数 类型 歌手 UserTable 字段中文名 编号 名称 密码 E-mail 标志 等级 积分

字段英文名 Number MusicName Music Description TimesViewed Type Singer 字段英文名 Number UserName UserPwd E-mail IsAdmin Level Points 字段类型 Int varchar Blob Text int varchar varchar 字段类型 Int varchar varchar varchar bool int int 长度 30 长度 30 主键 是 否 否 否 主键 是 否 否 外键 否 否 否 否 外键 否 否 否 是否可为空 备注 否 否 否 否 否 否 字段英文名 Number FilmName Film Description Level TimesViewed UploadedBy UpLoadTime Type Director 字段类型 Int varchar Blob Text int int Number Date varchar varchar 长度 30 主键 是 否 否 否 否 外键 否 否 否 否 是 是否可为空 备注 否 否 否 否 否 否 否 否 是否可为空 备注 否 否 否 否 否 否

+二维关系图

5.系统类图如下:

文件高级属性文件列表-上传人-积分1-点击次数1..*-备注1*音乐品种视频品种-音乐类型-影片类型-歌手-简介-时长

上传资源-编号10..1用户-编号上传信息-用户名-密码-上传日期-e-mail-标志-等级使用-积分上传加分规则

5、结构化实现

////5.1、界面设计

(1)开始界面:

(2)字体更改界面:

(3)查找界面:

(4)错误窗口:

5.2、部分代码

6、总结

我们在决定运用C#和Java编写一个媒体播放器时,就知道会有难度,因为我们都没有接触过WPF(主要用来写界面),但是看我们有信心,因为我们有编程基础的同时我们还有兴趣和爱好。刚开始的时候,我们会为实现的一个小小功能高兴一整天,也会因为熬了一天还是没写出那个功能好而难过。有时候我们会坐上一天,反复的运行测试修改几十次,只是为了使那个功能更便捷更完美。

虽然我们学习计算机已经接近三年了,也学习了很多语言,有面向过程的也有面向对象的还有汇编语言,老师也教给我们很多的理论知识和经验,但是这确实我们第一次从头到尾的编写一个自己设计自己构想的软件,我们的付出得到了回报。

首先,在开始开发一个软件时,要充分了解用户使用过的相关软件以及用户期望使用的软件。要学会充分利用现有的资源和网络,这样我们可以省去更多的时间和人力来完善我们的软件。

其次,在开发一个软件时,人员的组织和分配是一个非常重要的为题,安排合理可以达到事半功倍的效果。根据成员的不同能力和个性动态的安排不懂得工作既可以让不同成员深入的了解不同的领域,又可以避免人员浪费和工作混乱。

再次,开发一个软件时前期工作很重要,需求分析做得好,开发人员就可以很顺利的完成软件的编程,即使需要修改也不会很费力费时。

最后,由于此次使我们第一次完成软件开发,在知识经验方面都存在很多不足之处,所以该软件必然会存在一些缺点。谨请大家提出宝贵意见。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务