5.2 歌曲播放模块详细设计
在系统功能模块设计中已经详细介绍了该模块要实现的功能,在本节中将详细阐述所应用的相关函数,方法,各个组件类以及各组件是如何联系从而实现该模块功能的。
首先单击打开按钮,OpenDialog组件执行,判断MP3文件是否存在,将OpenDialog.FileNme赋予Combobox.Text单击“播放”按钮,判断combobox.Text是否为空,如果为空,程序执行异常,跳出对话框“文件不存在”或“音频设备正被占用” [19];如果不为空,将歌词内容存入数组,(歌词内容在歌词编辑模块中打开)因为每一个时间标签对应一句歌词,由时间标签决定歌词出现的时间(时间标签格式:[min:sec:msec],[分,秒,毫秒]),我们可以使用下文提到的StrToInt( )方法将时间标签由字符串类型转换为整型,具体来说就是将min,sec全部以msec表示再存入到数组中 ,这时TTimer组件执行歌曲正常播放。歌词编辑模块中的工具栏可见,可以对歌词进行编辑。以下是该模块过程及变量声明:
5.2.1 歌曲播放模块的变量说明
表1 歌曲播放模块数据表
Table 1 MP3 Playing module data
变量名 中文说明 类型 说明
Fname 文件名 STRING 指定MP3文件名
F 文本变量 TEXTFILE 将歌词内容以一行文本返回到该变量
Mgc[ ] 整型数组变量 ARRAY 将歌词存入数组
Min 分 INTEGER 指定歌曲的播放时间中的“分”
Sec 秒 INTEGER 指定歌曲的播放时间中的“秒”
Msec 毫秒 INTEGER 指定歌曲的播放时间中的“毫秒”
L 歌曲播放时间 INTEGER 获得歌曲播放的总时间
5.2.2 歌曲播放模块的过程说明
**********************************************************************
Procedure Tfrom1.PlaySpeedButtonClick(Sender.TObject);//播放按钮单击事件
var fname,s,sl:string;
F:textFile;//文本文件类型
min,sec,msec,i,j,l:integer;
**********************************************************************
该模块用到的主要方法:
File exists(combobox1.Text)
// 功能说明:检测指定的文件是否存在。如果存在则返回True,反之则为False
Round ( )
//数学方法,对数值进行四舍五入
Change FileExt (Combobox1.Text,'.lrc')
//更改文件的后缀名
Read ln (F,s)
//读取一行文本到S变量中
Eof(F)
//判断文件指针是否移动到了文件末尾。当EOF函数返回值为True时,则不可以使用Read ln函数进行读取文件了
Trim(s)
//去掉字符串s的所有空格
Length(s)
//该函数用于统计指定字符串的长度(即个数)
Copy(s,2,6)
//该函数用于从字符串中复制指定范围中的字符。该函数有3个参数。第一个参数是数据源(即被复制的字符串),第二个参数是从字符串某一处开始复制,第三个参数是要复制字符串的长度(即个数)。最后函数返回一个新的字符串(即是我们指定要复制的字符串内容)
Assign File(F, fname);
//与指定的文件建立连接
Reset( )
//以只读方式打开文件
Closefile( )
//关闭文件,当对文件的操作完成后,应该使用CloseFile函数关闭打开的文件
Strtoint()
//该函数用于将“字符型”转换成“整数型”
Inttostr( )
//该函数用于将“整数型”转换成“字符型”
Show message( )
//显示一个对话框
该模块用到的主要组件:
*TspeedButton组件
TspeedButton组件是一个按钮,用于执行一个命令。该组件不是从窗口组件中派生的,因此没有Windows句柄,不能获得焦点。但是它具有单击事件,并且能够存储图像。
转贴于 酷文网-论文下载中心 http://www.coolwen.net
共6页: 上一页 [1] [2] 3 [4] [5] [6] 下一页
网摘收藏: