版主: 我就按照你的方式使用的就是不行,还是只朗读最后一条记录,前面的记录全部忽略了。
在全局代码中定义:
Public Speaker As New DotNetSpeech.SpVoice()
设置为异步朗读模式
朗读语句如下:
Dim i As Integer
For i = 0 To Tables("窗口A_Table1").Rows.Count() - 1
Tables("窗口A_Table1").Position = i
Application.DoEvents
Dim yy As WinForm.ListBox = e.Form.Controls("ListBox1")
Dim vl As String = e.Form.Controls("TextBox2").Value '获得要朗读的文本
Speaker.Rate = e.Form.Controls("boxSpeed").Value '设置语速
Speaker.Voice = Speaker.GetVoices(String.Empty,String.Empty).Item(yy.SelectedIndex) '选择语音库
Speaker.Speak("", DotNetSpeech.SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak) '停止之前的朗读
If e.Form.Controls("rdoAsync").Checked Then
Speaker.Speak(vl, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync) '异步朗读
Else
Speaker.Speak(vl, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFDefault) '同步朗读
End If
Next