Как остановить синтезатор речи? - PullRequest
1 голос
/ 18 февраля 2012

КАК ОСТАНОВИТЬ System.Speech.Synthesi.Sntheziser?Существуют встроенные методы для приостановки и возобновления, но я не вижу, как полностью остановить двигатель.когда я использую метод SpeakAsyncCancel, свойство состояния указывает, что синтезатор все еще говорит.

Должен ли я использовать потоки или я не понимаю ?.

Ответы [ 2 ]

0 голосов
/ 01 октября 2014

Используя SpeakAsyncCancel, вам нужно передать параметр приглашения, например:

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

Вы также можете использовать SpeakAsyncCancelAll() и, наконец, удалить:

Synthesizer.SpeakAsyncCancelAll();
Synthesizer.Dispose();
0 голосов
/ 10 октября 2012

У меня была такая же проблема, и я понял ее после некоторого изумления.Синтезатор является многопоточным, поэтому они должны быть только ОДНЫМ экземпляром в программе, поэтому создайте статический экземпляр где-нибудь со статическим конструктором.

...