Welcome

首页 / 软件开发 / Delphi / 使用DELPHI实现文本文件显示和声音同步

使用DELPHI实现文本文件显示和声音同步2010-01-27在一些语言教学软件中,经常使用文本显示和声音同步播放,我们可以用DELPHI实现之。

一、材料的制作

首先,我们选择几篇文章,这里我们选择马丁路德金、林肯和里根的演说,每一篇文章分为若干句,在制作声音文件时,记下每个句子的开始时间和结束时间,然后将其记到一个数据表中,这个表有如下字段:NO、TEXT、STARTTIME,分别表示每句序号、内容、开始时间。

二、界面的制作

在DELPHI中创建一个新工程,在FORM中放入多媒体控件,RTF编辑器,命令按钮,单选分组框,数据表,时钟和标签,如图所示

三、各个控件的属性

1、多媒体控件的AutoEnable和AutoOpen特性设置为False ,VisibleButtons特性设置Record、Eject、Step为不可见。

2、Table控件的DatabaseName设为存放表的目录,我们将应用程序、声音文件和表存放在myprog目录,因此这里将DatabaseName设为c:myprog,将TableName设为默认的播放文件对应的数据表的名字,这里设为ex1.dbf。

3、Radiogroup控件的Caption设为 ‘请选择播放内容’,Itmes特性中加上三行:马丁路德金,林肯,里根。

4、Richedit控件的Lines特性加上‘演讲内容。

四、代码的编写

1、变量声明

var isend:Boolean;
CurrentButton:TMPBtnType;
CurrentPlay,CurrentDisp:longint;

其中isend表示播放是否已经到了末尾,CurrentButton表示当前MediaPlayer元件中按下了哪个按钮,CurrentPlay ,CurrentDisp表示当前播放记录及当前显示记录。

2、在FormCreate事件中做一些必要的准备工作,其代码如下:

procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.TableName:=ex1.dbf; Table1.Open;
MediaPlayer1.FileName:=ex1.wav;MediaPlayer1.Open;
MediaPlayer1.TimeFormat:=tfMilliseconds;
isend:=False;
CurrentButton:=btStop;
CurrentDisp:=1;
CurrentPlay:=1;
end;