如何在运行时模式下停止SAPI的执行

时间:2019-09-16 07:53:35

标签: delphi delphi-2010

当我单击某个按钮之类的控件时,我试图在运行模式下从备忘录读取行尾之前停止SAPI的执行。我该怎么做?。

我试图通过使用计时器的执行控制进度条来干扰SAPI的执行,当进度条到达位置2时,它会显示一条messagedlg,而SAPI的执行尚未达到从备忘录中读取文本的行尾。希望SAPI能够停止执行,但是它会在运行时模式下执行时禁用所有功能,直到读取完成我什么也不能做。

1 个答案:

答案 0 :(得分:0)

基于执行SAPI Spech生成会阻塞整个应用程序这一事实,我猜测您正在调用它synchronously,这意味着直到SAPI完成读取文本后,该函数才返回。

SpVoice Speak method (SAPI 5.4)

相反,您应该将其称为asynchronously,这意味着该函数会立即返回,并且仍在免费中读取文本。

当您告诉SAPI一次又一次读取多个流时,Thid允许您继续在应用程序中进行其他工作,以及PauseResume甚至Skip等其他工作。 / p>