如何停止语音合成器?

时间:2012-02-18 18:32:24

标签: .net speech .net-3.0 synthesizer

如何停止System.Speech.Synthesi.Syntheziser?有暂停和恢复的内置方法,但我不知道如何完全停止引擎。当我使用SpeakAsyncCancel方法时,state属性表明合成器仍然在说话。

我必须使用线程还是我不理解?

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并在一些护目镜后想出来了。 Synthesizer是多线程的,因此它们只能是程序中的一个实例,所以使用静态构造函数在某处创建一个静态实例。

答案 1 :(得分:0)

使用SpeakAsyncCancel您需要传递一个提示参数,例如:

Synthesizer.SpeakAsyncCancel(new Prompt("cancelling now"));

您也可以使用SpeakAsyncCancelAll(),最后处置:

Synthesizer.SpeakAsyncCancelAll();
Synthesizer.Dispose();