【发布时间】:2016-01-03 13:37:34
【问题描述】:
我有一个取消按钮来取消语音合成器的 speakAsync 方法。它通过PromptBuilder 调用,输出设置为波形文件,如
reader.SetOutputToWaveFile(CurAudioFile, fmt);
reader.SpeakAsync(PB);
并按如下方式取消:
private buttonCancel_Click(...)
{
if (Utility.Warn("Are you sure you want to cancel reading the document aloud?") == System.Windows.Forms.DialogResult.Yes)
{
reader.SpeakAsyncCancelAll();
}
}
但问题是,当我单击取消按钮时,代码永远不会执行!实际上它对按钮单击没有响应并且没有执行!
我尝试在 speak_progress 中使用Application.DoEvents(),但也没有用!
【问题讨论】:
-
我无法重现您的问题。您确定您使用的是
SpeakAsync而不是Speak? -
@YacoubMassad 是的,说 asynch,你是否将输出设置为波形文件?
-
您能否展示更多您的代码?您在哪里以及如何存储阅读器?
-
@YacoubMassad 我发现了问题,在 speak_progress 我调用
Focus进行控制,它使焦点从按钮上移开并且不让它被点击!
标签: c# winforms asynchronous speechsynthesizer