酷文首页  
站内搜索:
网站地图 | RSS订阅 | 收藏本站
经济论文
证券金融
工商管理
会计审计
法学论文
医药论文
社会论文
教育论文
计算机论文
艺术论文
哲学论文
财政税收
财务管理
公共管理
理学论文
政治论文
文学论文
工学论文
文化论文
实用文档
应用文
自考成考
演讲稿
法律文书
子栏目导行↓
网站赞助商↓
本类热点↓
本类更新↓
热门标签↓
网摘收藏↓

歌词同步编辑与显示系统的设计与实现

作者:王斯野
来源:酷文网
点击:
载入中...
加入时间:2008-07-23
字体大小:[  ]

2.3.1  歌曲播放模块
      该模块的界面描述:
(1)歌曲的播放
(2)歌曲的暂停
(3)歌曲的停止
(4)歌曲的快进
(5)歌曲进程的显示,通过TOOLBAR进度条显示
(6)歌曲长度的显示即歌曲播放时间总长度在LABLE中显示
(7)显示MP3文件存放位置的对话框
2.3.2  歌词显示模块
      该模块的界面描述:
在LABLE中显示播放歌曲的歌词
2.3.3  歌词编辑模块
      该模块的界面描述:
    (1)正在播放的歌曲已经流失的时间即当前播放时间,在编辑框中显示
(2)显示歌词文本文件打开路径的对话框
(3)显示歌词文本文件保存路径的对话框
(4)歌词编辑框,表格中显示歌词内容和时间标签
3  概要结构设计
编写概要设计说明书是软件开发过程必不可少的部分[4],其目的是为了使开发人员在完成需求分析说明书的基础上,完成需求分析说明书规定的各项需求实现的设计工作。
3.1系统功能模块设计
     本系统按功能模块分,可分为:歌曲播放模块,歌词显示模块,歌词编辑模块三个部分。
3.1.1  歌曲播放模块
本模块的主要功能是得到文本对话框打开的MP3文件,如果该歌曲存在对歌曲进行播放,暂停,停止的操作,在播放歌曲的同时将与歌曲文件名相同的歌词文件读取,将歌词内容存入已定义的整型数组。如果不存在,则程序执行异常,跳出对话框“文件不存在”或“MCI设备正在使用”。
3.1.2  歌词显示模块
    本模块的主要功能是利用时间控件验证编辑的歌词是否正确,并在LABLE中显示歌词[14]。在编辑模块可用的条件下,完成对时间标签的编辑,之后在此模块验证。
3.1.3  歌词编辑模块
    本模块的主要作用是先打开一个“打开”对话框,选中与播放歌曲名相同的“.TXT”或“.LRC”文件,然后将歌词内容读入表格中,在播放歌曲的同时编辑框中显示当前歌曲的播放时间,单击表格中的单元格,把当前编辑框中的播放时间添加进去,代替原来歌词的时间标签。
3.2  系统窗体模块设计
3.2.1  歌曲播放模块界面设计
     本模块窗体由6个TSPEEDBUTTON类组件,2个LABLE类组件,1个TRACKBAR类组件,1个COMBOBOX类组件,1个 TOOLBAR类组件构成,1个TTIMER类组件,1个OPENDIALOG类组件,1个TMEDIAPLAYER类组件,歌曲播放界面如图1所示。


    图1  歌曲播放模块界面
       Fig 1 Interface of MP3 playing module
     TOOLBAR类组件表示工具拦,所有与该模块相关的组件都置于该组件类之上;
     COMBOBOX类组件表示下拉框,MP3的文件名在该类组件中显示;
     TTIMER类组件执行与歌曲播放时间相关的操作;
     TRACKBAR类组件表示歌曲播放的进度;
     OPENDIALOG类组件执行打开MP3文件对话框;
     LABLE1. CAPTION=“MP3设置:”
     LABLE2. CAPTION=歌曲时间长度
TSPEEDBUTTON1.CAPTION=“打开”
TSPEEDBUTTON2.CAPTION=“播放”
TSPEEDBUTTON3.CAPTION=“暂停”
TSPEEDBUTTON4.CAPTION=“停止”
TSPEEDBUTTON5.CAPTION=“下一首”
TSPEEDBUTTON6.CAPTION=“上一首”
3.2.2  歌词显示模块界面设计
     本模块窗体由1个LABLE类组件,1个TTIMER类组件。详细描述如下:
LABLE3. CAPTION中显示歌词内容;
TTIMER2验证编辑的歌词内容是否正确;
3.2.3  歌词编辑模块界面设计
     2个TSPEEDBUTTON类组件,1个STRINGGRID类组件,6个LABLE类组件,5个EDIT类组件, 1个OPENDIALOG类组件, 1个SAVEDIALOG类组件。歌词编辑模块界面如图2所示。

 

 图2  歌词编辑模块界面
Fig 2 Interface of Lyrics editing module
TSPEEDBUTTON7.CAPTION=“打开”
TSPEEDBUTTON8.CAPTION=“保存”
LABLE3. CAPTION=“歌词设置:”
LABLE4. CAPTION=“当前时间:”
LABLE5. CAPTION=“歌曲名称:”
LABLE6. CAPTION=“演唱者”
LABLE7. CAPTION=“专集名称:”
LABLE8. CAPTION=“偏移”
OPENDIALOG类组件执行打开“.TXT”或“LRC”文件对话框;
SAVEDIALOG类组件执行保存“.TXT”或“LRC”文件对话框;
STRINGGRID类组件即一个表格;
4  逻辑结构设计
逻辑结构设计的任务是将各个功能模块的逻辑流程图表示清楚,从而确定整个系统的逻辑结构关系,各个模块是如何相互联系作用的[17]。
4.1  系统流程图
   首先打开一个MP3文件,再打开对应的歌词文件(TXT或LRC格式)。单击“播放”按钮,开始播放歌曲,播放歌曲时,在相应的时间标签上单击,即可将当前时间添加至时间标签。当歌曲播放结束时,此时单击时间标签,不会将当前时间添加至时间标签。
4.2  歌曲播放模块流程图
本模块的主要功能是得到文本对话框打开的MP3文件,如果该歌曲存在对歌曲进行播放,暂停,停止的操作,在播放歌曲的同时将与歌曲文件名相同的歌词文件读取,将歌词内容存入已定义的整型数组。如果不存在,则程序执行异常,跳出对话框“文件不存在”或“MCI设备正在使用”。如图3所示。


图3   歌曲播放模块流程图
Fig 3 Diagram of Song playing module
4.2  歌词显示模块流程图


图4   歌词显示模块流程图
Fig 4 Diagram of Lyrics displaying module
4.3  歌词编辑模块流程图

图5   歌词编辑模块流程图

5  详细设计
5.1  开发工具简介
   Delphi[1]类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。在Delphi中,每一个类的祖先都是Tobject类[3],整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为Tobject类。这样,按照面向对象编程的基本思想,就使得用户可用Tobject类这个类型代替任何其它类的数据类型[12]。实际上在Delphi的类库中[13],Tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。组件在Delphi程序的开发中是最显眼的角色[14]。大家知道,在编写程序时一般都开始于在组件面板上选择组件并定义组件间的相互作用。但也有一些组件不在组件面板上,例如[15]Tform和Tapplication(典型的非可视组件)。组件是Tcomponents派生出来的子类[16],可以流的形式存放在DFM文件中,具有事件和Publish属性[20]。窗口组件类是窗口化的可视化组件类,在Delphi的类库中占有最大的份额[21]。在实际编程中,窗口组件类的对象都有句柄,可以接受输入焦点和包含其它组件。图形组件与窗口组件并列,是另一大类组件。图形组件不是基于窗口的,因而不能有窗口句柄,不能接受输入焦点和包含其它组件。图形组件的基类是TgraphicControl[21],在实际编程中,它们必须寄生于它们的宿主——窗口组件类的对象,由它们的拥有者负责其显示,而且它们还能触发一些和鼠标活动相关的事件。图形控件最典型的例子是Tlabel和TspeedButton[22]。由此可以看出图形组件的功能很弱,有读者会问图形组件的用处何在呢?其实使用图形组件的最大好处在于节省资源,正是因为它们的功能较弱,所以使用的系统资源就要少。在一个应用程序中,如果能在不影响其功能的前提下合理大量地使用图形组件,将会大减少程序对系统资源的消耗[23]。非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的。转贴于 酷文网-论文下载中心 http://www.coolwen.net


共6页: 上一页 [1] 2 [3] [4] [5] [6] 下一页

网摘收藏:
免责声明 | 关于我们 | 广告联系 | 友情链接 | 网站地图 | 共同合作
免费论文 毕业论文 毕业论文范文 酷文网(www.coolwen.net) 版权所有 coolwen.net 2007,All Rights Reserved
E-mail:hui_love#tom.com(为防止垃圾邮件请把#换成@) 点击这里给我发消息 点击这里给我发消息
湘ICP备07003917号