网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
DELPHI实现文本文件显示和声音同步播放
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

朱群生

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

---- 一、材料的制作  

---- 首先,我们选择几篇文章,这里我们选择马丁路德金、林肯和里根的演说,每一篇文章分为若干句,在制作声音文件时,记下每个句子的开始时间和结束时间,然后将其记到一个数据表中,这个表有如下字段: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;


---- 3、在单选分组框中加进如下代码:  
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
MediaPlayer1.Close; Table1.Close;
case radiogroup1.ItemIndex of
0:begin MediaPlayer1.FileName:=''ex1.wav'';
    Table1.TableName:=''ex1.dbf'';end;
1:begin MediaPlayer1.FileName:=''ex2.wav'';
    Table1.TableName:=''ex2.dbf'';end;
2:begin MediaPlayer1.FileName:=''ex3.wav'';
    Table1.TableName:=''ex3.dbf''; end;
end;
Table1.Open; MediaPlayer1.Open;
end;
     

---- 4、为了适当修改MediaPlayer元件中各个按钮的功能,需要编写MediaPlayer元件的click事件的代码,主要是修改“快进”及“快退”的功能,使其每次移动一句,且移动后直接播放,而不用再按“播放”按钮。为达到这个功能,在过程的一开始,设置DoDefault参数为False,表示不执行默认的动作,在过程的中间部分,加上必要的处理,在过程的结束处,写上根据按下的按钮执行相应功能语句。  
procedure TForm1.MediaPlayer1Click(Sender: TObject;
Button: TMPBtnType; var DoDefault: Boolean);
begin
DoDefault:=False;
with MediaPlayer1 do
begin
case Button of
btPlay : begin
if isend=true then
begin
Table1.first; Position:=start;
CurrentPlay:=1; CurrentDisp:=1;
isend:=False;
RichEdit1.lin
  • 上一篇资讯: 在Delphi中实现ASP编程
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号