내 응용 프로그램 내에서 진행률 표시 줄을 내 음성 합성기에 연결하여 텍스트 읽기 속도를 표시하고 싶습니다. 진행률 표시 줄을 내 음성 합성기에 연결하려면 어떻게합니까?
다음과 같이 내 SpeechSynthesizer 코드에 대한 주요 구성 요소는 다음과 같습니다가 음성 합성기의 현재 상태를 표시합니다 (그리고 있도록private void button1_Click(object sender, EventArgs e)//Start button
{
reader.Dispose();
if (Basic_Word_Processor.Instance.richTextBoxPrintCtrl1.Text != "")
{
reader = new SpeechSynthesizer();
reader.SpeakAsync(Basic_Word_Processor.Instance.richTextBoxPrintCtrl1.Text);
button2.Enabled = true;
button4.Enabled = true;
reader.SpeakCompleted += new EventHandler<SpeakCompletedEventArgs>(reader_SpeakCompleted);
}
else
{
MessageBox.Show("Please insert text before launching Text to Speech.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
private void button2_Click(object sender, EventArgs e)//Pause button
{
if (reader != null)
{
if (reader.State == SynthesizerState.Speaking)
{
reader.Pause();
button3.Enabled = true;
}
}
private void button3_Click(object sender, EventArgs e)//Resume button
{
if (reader != null)
{
if (reader.State == SynthesizerState.Paused)
{
reader.Resume();
}
button3.Enabled = false;
}
}
private void button4_Click(object sender, EventArgs e)//Stop button
{
if (reader != null)
{
reader.Dispose();
button2.Enabled = false;
button3.Enabled = false;
button4.Enabled = false;
}
}
내가 진행률 표시 줄까지이 코드를 연결하고자하는 일시 중지/사용자의 일시 정지가/진행률 표시 줄을 중지 할 때 중지합니다.이 가능합니까? 내가 제대로 진행 표시 줄을 사용한 적이, 그래서 내가 이렇게하는 방법에 대한 몇 가지 도움말을하고 싶습니다.
감사합니다.
실제로 감지 할 수있는 항목에 대해서만 "실제"진행 표시 줄을 표시 할 수 있습니다 진행. 'reader.SpeakAsync()'는 그 중 하나가 아닙니다. 주어진 길이의 텍스트가이를 기반으로 읽기 및 진행에 소요되는 시간을 추정하여 "가짜"진행률 표시 줄을 만들 수 있습니다. 그것들은 계속해서 바를 반복해서 채우는 설치자가 목격 한 것처럼 훨씬 더 일반적입니다 ... – Bobson
문제는 텍스트 길이가 다양하다는 것입니다. 텍스트 편집기이기 때문입니다. – Toby
독서로 반환 될 것으로 예상 할 수있는 무언가가 필요합니다. 그럴 필요가없는 것 같습니다. – Jonesopolis