当我单击某个按钮之类的控件时,我试图在运行模式下从备忘录读取行尾之前停止SAPI的执行。我该怎么做?。
我试图通过使用计时器的执行控制进度条来干扰SAPI的执行,当进度条到达位置2时,它会显示一条messagedlg,而SAPI的执行尚未达到从备忘录中读取文本的行尾。希望SAPI能够停止执行,但是它会在运行时模式下执行时禁用所有功能,直到读取完成我什么也不能做。
答案 0 :(得分:0)
基于执行SAPI Spech生成会阻塞整个应用程序这一事实,我猜测您正在调用它synchronously
,这意味着直到SAPI完成读取文本后,该函数才返回。
SpVoice Speak method (SAPI 5.4)
相反,您应该将其称为asynchronously
,这意味着该函数会立即返回,并且仍在免费中读取文本。
当您告诉SAPI一次又一次读取多个流时,Thid允许您继续在应用程序中进行其他工作,以及Pause
,Resume
甚至Skip
等其他工作。 / p>