阻止C#语音合成器在按钮单击事件上重复自身

时间:2017-03-23 23:42:10

标签: c# wpf

我有一个使用C#语音合成器的WPF应用程序。

我希望在应用程序打开并阅读输入文本时取消,在下面尝试

{{1}}

但没有工作?

1 个答案:

答案 0 :(得分:1)

Doco:https://msdn.microsoft.com/en-us/library/system.speech.synthesis.speechsynthesizer(v=vs.110).aspx

确切地说:https://msdn.microsoft.com/en-us/library/jj572477(v=office.14).aspx#Anchor_4

以下内容应该有效,您只是创建一个可以访问的变量,因此它是一个单一的speechsynthesizer实例

private SpeechSynthesizer synth = new SpeechSynthesizer();
private void SpeechButton_Click(object sender, RoutedEventArgs e)
{
    // Cancel the current speak operation and all queued SpeakAsync operations.
    synth.SpeakAsyncCancelAll();

    // Begin speaking the prompt.
    synth.SpeakAsync("Hello, Welcome to the application");
}

查看更多示例代码的第二个链接,基本上只使用一个变量来跟踪同一个实例和一个Cancel类型方法(第一个和第二个链接中的几个例子)来停止当前正在运行的语音。