Process process;
// Read Contetnt Mouse click event
private SpeechSynthesizer readerSpeak;
private void btnSpeakContent_Click(object sender, EventArgs e)
{
if(richTextBoxThanglish.Text.Trim() == string.Empty)
{
if (process.HasExited == false)
process.Kill();
MessageBoxWrapper.ShowWarning("Textbox is Empty.", "ABTS", "Textbox is Empty.");
process = Process.Start("narrator.exe");
}
else
{
if (process.HasExited == false)
process.Kill();
readerSpeak = new SpeechSynthesizer();
readerSpeak.SpeakAsync(richTextBoxThanglish.Text.ToString());
if (process.HasExited == true)
process = Process.Start("narrator.exe");
}
}
private void btnStopSpeak_Click(object sender, EventArgs e)
{
if (process.HasExited == true)
process = Process.Start("narrator.exe");
if (!(readerSpeak == null))
{
readerSpeak.Dispose();
}
}
假设上面的程序有两个按钮调用speakContent & stop_speak。我运行narrator.exe进程来获取Windows解说器。 我确实想要说明richtextbox内容没有重叠的声音。我知道Synchronos说话,但它会暂停我的应用程序,直到speakContent完成。我需要SpeakAsyn()。 无论如何在语音解说器中添加沉默?其实我需要3秒后发短信。我曾使用“System.Threading.Thread.Sleep(3000);”。但是仍然发生文本重叠, 手段解说者&串一起演讲。如何避免叙述者和字符串到语音在c#中重叠?
请帮忙。
谢谢你的时间。我使用key_Leave事件修复了它。 –
如果你愿意,你可以自己发表一个答案(并接受它)来记录你如何修复它(使用代码示例等),这样任何有此问题的人都将知道如何解决它。 –