说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

使用DELPHI实现文本文件显示和声音同步播放

HTML文档下载 WORD文档下载 PDF文档下载
使用DELPHI实现文本文件显示和声音同步播放

---- 在一些语言教学软件中,经常使用文本显示和声音同步播放,我们可以用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.lines.clear; RichEdit1.lines.add

('演讲内容');

end;

CurrentButton:=btPlay;

end;

btStop : begin CurrentButton:=btStop;

isend:=true;

end;

btpause: if CurrentButton=btPlay then

CurrentButton:=btpause

else if CurrentButton=btpause then

CurrentButton:=btPlay;

btPrev: begin CurrentButton:=btPrev;

Table1.Prior;

Position:=Table1.fieldvalues

['STARTTIME'];

CurrentButton:=btPlay;

end;

btBack: begin CurrentButton:=btBack;

Table1.first; Position:=start;

CurrentPlay:=1;

CurrentDisp:=1;

RichEdit1.lines.clear;

RichEdit1.lines.add

('演讲内容');

CurrentButton:=btPlay;

end;

btNext: begin CurrentButton:=btNext;

Table1.Next;

Position:=Table1.fieldvalues

['STARTTIME'];

CurrentButton:=btPlay;

end;

end;

case CurrentButton of

btPlay: Play;

btpause:pause;

btStop:Stop;

end;

end;

end;

---- 5、为了能同步显示文本,需要编写定时器OnTime事件的代码,如果当前播放的时间超过了当前记录的开始时间,则设置CurrentPlay为当前记录号,如果CurrentPlay超过了CurrentDisp

则显示当前记录。

procedure TForm1.Timer1Timer(Sender: TObject);

begin

with MediaPlayer1 do

begin

if CurrentButton=btPlay then

begin

if not Table1.eof and (Position

>Table1.FieldValues['STARTTIME'])

then

begin CurrentPlay:=Table1.recno;

if CurrentPlay >=CurrentDisp then

begin

RichEdit1.Lines.add(Table1.fieldvalues['TEXT']);

CurrentDisp:=CurrentDisp+1;

end;

Table1.Next;

end;

if Table1.eof then

begin

CurrentButton:=btStop;

isend:=true;

end;

end;

end;

end;

---- 注:在MediaPlayer的click事件中,使用了btPrev

btNext等常量,为了能够通过编译,在uses子句中需将ComCtrls放在mPlayer之前,以免引起冲突。

如何在屏幕上移动Image图象-Delphi资料 软件中复活节彩蛋的实现-Delphi资料 实现图象局部放大的原理和方法-Delphi资料 使用Delphi实现滚动式面板窗口 通用的MsgBox-Delphi资料 图象放大镜——实现图象局部放大的原理和方法-Delphi资料 图形的特殊显示效果-Delphi资料 图形整体拉出效果-Delphi资料 一个实用的Delphi屏幕拷贝程序的设计 用Delphi 显示122种图形特效 用Delphi编写DLL实现动态改变分辨率 用Delphi进行OpenGL编程学习心得 用Delphi开发windows95屏幕保护预览程序 用Delphi实现壁纸更换 用DELPHI实现位图显示特技 用DELPHI中Canvas特性开发图形软件 用构件变换法实现动画效果-Delphi资料 在Delphi中使用动态图标 在Delphi中显示Windows图标 在多媒体文件中批量抓取图象-Delphi资料 怎样读出不同格式图形的高和宽-Delphi资料 怎样使用PageUp、PageDown滚动窗体-Delphi资料 怎样制作全透明的窗口-Delphi资料 DELPHI:FormContainer简易手册 Delphi:用FormContainer渐变效果 Delphi4的窗口融合技术 Delphi使用技巧ABC Delphi使用技巧四则 DELPHI中自适应表单的实现 TList的用法-Delphi资料 不规则窗口的实现-Delphi资料 jdk1.3+jswdk1.0.1 的JAVAbeans .class文件要放哪啊????? God painted it 提问:猪真的很幸福吗?要求 wywq(幸福如猪) 回答。 哪位高手做过可视电话的? VB能不能实现“一个结构体类型的数组当参数传递 Forgotten Birthd Husbands Overheard Fine 有个在多线程中使用ADO的问题。请高手们帮忙。 Suede jacket 可能是installshield的Bug! 我想去北京找个工作,请大家帮帮忙,提供点信息! 装了“猫”为何还有630错误(电话线也接了)? excel 問題 各位:数据窗口有一检索变量,现在想retrieve出所有的记录,检索变量应该怎样赋值?谢谢! linux和windows是不是只能分别装在两个分区中 关于图像处理:如何使图像锐化与柔化? 帮帮我啦! 我在使用jdbc读取数据的时候,碰到了内存溢出的问题,怎么回事呀 哪里有餐饮系统的介绍?90不够的话,先欠着,多谢了! 在两个ASP程序之间怎么传递参数? ccl2000(不帅不酷的Goblin):其实你真的很酷很帅的。 大侠帮帮我啦(关于SQL语句的问题) 关于Vxd的编译问题 用VC编的程序,一运行就说“执行非法操作”,问题出在哪里?? SQL Server有病 一个关于api的简单问题 《易佳自定义报表》用后很失望 请教各位高手一个有关报表控件的问题? 小妹向大家请教!可不可以直接在本页的代码中改变该页面浏览时的属性? 家菲猫:惊悉你昨晚惨遭不幸,被窃大量钱物,今日一天无法和你联系上,估计手机和通信录已全部丢失,如果今晚无法来我处,明早8点以前请务必携猫 MM 赶到上海南站!!! MDI文档模板和应用程序调用问题请教,大侠请进! 一个c++问题???? 请问各位高手,sqlserver2k加密的存储过程是否能解密,看到它的实际的语句?可否能跟踪加密的存储过程? 我下载了一个formula one ,发现她的界面跟excel差不多,在pb中怎么用? 高分求XML 高级编程(足本)[01.pdf到10.pdf]!!!! 招聘汇编程序员 ie 中true dbgrid 的问题 急招聘汇编程序员 关于WINDONWS文件夹 WIN2000有关用户管理的问题 谁可以告诉我怎么调用已有的EXE文件。 有谁知道广州或南海的高级程序员考试的辅导点 如何把系统时间作为一个文件的保存名? TURBO C语言对磁盘操作的问题 着急招聘汇编程序员 为什么大家得的都是0分? 这行代码是什么意思: 不知怎的,不小心访问到一个网站。我已设为使用空页,可它还是要先启动,画面又恶劣,怎么办? 还是关于从字符串中提取汉字的问题,我是从*.txt取出一个字符串(readln),结果无法提取汉字 请大家帮忙,白送分的 常减压蒸馏产品质量调节 高二化学知识点总结 1,将含有C,H,O的有机物3.24g装入元素分析装置,通入足量的氧气使之完全燃烧,将生成的气体依次通过CaCl2管【A】和碱石灰管【B】,测得A管质量增加了2.16g,B管增加了9.24g,已知该有机物的相对分子 加氢裂化工艺提供商 A、B、C、D、E均为可溶于水的固体,组成它们的离子有:阳离子:Na+、Mg2+、Al3+、Ba2+阴离子:OH-、Cl-、碳酸根离子、硫酸根离子、硫酸氢根离子分别取其水溶液进行试验,结果如下:①A溶液与B 高二化学——有机物的基础像CH3,CH4这样的,假设它们是最简式在没有相对分子质量的情况下,怎么知道它的化学分子式,老师说有些不用相对分子质量就可以知道它的分子式的.上课有点没听懂. 加氢裂化过程主要发生哪几种化学反应? 热方程式的加减怎么个加减法?是否可以据一些例子? 某烃的结构简式为 分子中含有四面体结构的碳原子数为a,在同一直线上的碳原子数最多为b,一定在同一平面内的碳原子数为c,则a、b、c分别为_________.请问一定在同一平面内的碳原子数为是不 松花蛋的制作过程中所发生的化学反应 已知在298K时下列反映的有关数据:C(s)+1/2O2(g)==CO(g),ΔH1=-110.5Kj/mol C(s)+O2(g)==CO2(g) ,ΔH2=-393.5KJ/mol 则C(s)+CO2(g)==2CO(g)的ΔH为( )A、283.5Kj/mol B、172.5Kj/mol C、-172,5Kj/mol D、-504Kj/mol(╯3╰) 高二化学! 在线等 求教高手向四个体积相同的密闭容器中分别充入一定量的SO2和O2,开始反应时,按正反应速率由大到小排 列顺序正确的是( )甲:在500℃时,SO2和O2各10 mol反应乙:在500℃时 溶解过程有发生化学反应吗? 高二化学热反应反应物质的量基本计算已知C(s)+O2(g)=CO2(g); △H1 C(s)+1\2O2(g)=CO(g);△H2.求△H1与△H2的相对大小? 怎么样的有机物能发生氧化反应?酯化反应?加成反应?取代反应?消去反应? 化学反应中,反应物的量和滴加顺序不同对生成物不同的化学反应有哪几种? 试验中不能测出由石墨和氧气反应生成甲烷的反应热ΔH4,但可测出CH4,C,H2 燃烧反应中的反应热ΔH1=-890.3,ΔH2=-393.5,ΔH3=-285.8 根据盖斯定理求ΔH4 今有三种饱和一元醇A,B,C其相对分子质量之比为8:22:29按物质的量之比1:2:1将A,B,C三种醇混合取该混合醇16.2g与足量金属钠反应生成标准状况下氢气的体积为2.24L试计算- 1)A,B,C三种醇相对 有能量变化的过程一定发生化学反应吗 高二化学热反应方程式中焓变值变化的问题比如一个热反应方程式.每一项系数X2那么焓变值也有X2但是我们老师说某一年的高考题 有种情况是焓变值不变的,那是怎么一回事啊? 丁烷失去一个氢原子后所剩余的原子团叫做丁基,丁基有___种,写出所有丁基的结构简式___.丁烷的一氯代物有___种.相对分子质量为114的烷烃,其一氯代物只有一种,则此结构简式为___名称___ 怎样区分别润滑油是不是用加氢裂化基础油调和? 如图,用系统命名法命名下列有机物 A.甲烷和溴蒸汽在加热条件下发生取代反应B.乙炔和溴水中的溴发生加成反应请问哪个是对的?为什么.. 32#基础油中32#是什么意思 CH3 C2H5丨 丨CH3一CH2一CH2一CH2一CH2一CH2一CH2一CH2一CH2一CH2一CH2一CH3这个叫做 6-甲基-7-乙基-12烷 还是叫做 6-乙基-7-甲基-12烷 3.描述CH3—CH==CH—C≡C—CF3分子结构的下列叙述中,正确的是A.6个碳原子有可能在一条直线上 B.6个碳原子一定都在同一平面上 市场上由1类基础油,2类基础油,3类基础油制的的润滑油价格分别是多少?要看具体什么产品?同种产品部同厂家出来的质量和价格都不一样,给个大概的价位给你参考一类:7000-8000二类:8000-10000 请问该有机物如何命名 高二化学.谢谢 三类基础油与二类基础油的区分Ultra-S2(60N),Ultra-S3(70N),Ultra-S4(100N),Ultra-S6(150N),Ultra-S8(250N),以上这些有的公司把它们都划分到三类基础油当中,虽然Ultra-S2\S3的粘度指数上写的是二 这个有机物怎么命名, 丙烷是石油分馏的一种产品对吗? 氢气在加氢裂化过程中起什么作用? 有机物怎么命名,还有怎么判断这些有机物类别. 1-溴丙烷与氢氧化钠反应为什么要加水 制取粗硅的过程中氢气起什么作用 甲乙两容器中均充入2mol SO2,1mol O2,发生反应2SO2(g)+O2(g)=2SO3(g) △H 1-溴丙烷和2-溴丙烷分别与NaOH的乙醇溶液共热的反应中,两反应A 产物相同,反应类型相同 B 产物不同,反应类型不同C 碳氢键断裂的位置相同 D 碳溴键断裂的位置相同 浮法玻璃氢气起什么作用 高二化学等效平衡在一固定容积的密闭容器中,保持一定温度,A+2B==3C,已知加入1molA和3molB且达到平衡后,生成了amolC在相同条件下,若在同一容器中,改为加入2molA和8molB,若要求平衡后C在反应混合 将1—氯丙烷跟氢氧化钠的醇溶液共热、生成的产物再跟溴水反应、得到一种有机物,他的同分异构体有几种? 氢气的作用 已知2SO2 (g)+O2 (g)⇌2SO3 (g);△H=-197kJ•mol-1.向同温、同体积的三个密闭容器中分别充入气体:(甲) 2mol SO2和1mol O2;(乙) 1mol SO2和0.5mol O2;(丙) 2mol SO3.恒温、恒容下反 一溴丙烷和氢氧化钠醇溶液反应的化学方程式 反应了什么事件 高二化学等效平衡的讲解要详细的 ~~ 解释透彻的~~拜托啦 1-溴丙烷与2-溴丙烷和NaOH的水溶液反应的方程式水溶液 不是醇溶液 在重大政治事件中的表现和认识 怎么写···急 急··· 有关于高二化学 等效平衡的问题一个非等体反应在恒容的情况下,成比例加入与之前相同的药物,那么当反应达到平衡状态时,各物质所占百分数是否与之前一样? 在制取蒸馏水的实验中,烧杯里装冷水的目的是什么 材料反映了什么事件从有最早的历史记录以来,没有一桩伟大的事业能像十八世纪后半期一个主要鞑靼民族跨越亚洲草原向东迁逃那样轰动于世,那样令人激动的了. 各类有机物的性质和可以发生的反应.一些特殊性质等. 制取蒸馏水的实验中试管内装的冷水有什么作用 关注时事对大学生成才有何意义200字左右 谁可以帮我总结一下高二化学有机物那一块的所有的有机物(甲烷等)的物理性质和化学性质?化学性质最好有方程式 请问在化学实验室制取蒸馏水装置中,为什么冷水从下管进,上管出 常减压蒸馏汽油、柴油与焦化汽油与柴油的区别 《七律长征》中反映了什么事件?“三军”是指什么?在这一过程中召开过什么重要会议?有何意义?务必一一回答,最好简短一点, 高二化学有机物的一些简单总结(正确的加30分)哪些官能团和NaOH,Na,Cu(OH)2,NaCO3反应?哪些能用溴水检验? 这章我学起来有点吃力,不清楚的就不要回答
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn