Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
Dim
sp As New DotNetSpeech.SpVoice()
请教,如何用代码来判断朗读结束呢?谢谢!!
Dim sp As New DotNetSpeech.SpVoice()
sp.Voice = sp.GetVoices(String.Empty,String.Empty).Item(0)
sp.Speak("I am from china.", DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)
messagebox.show("我读完了")
Dim sp As New DotNetSpeech.SpVoice()
sp.Voice = sp.GetVoices(String.Empty,String.Empty).Item(0)
sp.Speak("I am from china.", DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)
messagebox.show("我读完了")
这样是达不到我要效果的。
需要代码来判断是否读完?
不读完就不能执行任何操作的。
所以只能在这里判断
哦,我这边朗读是采用异步的,不是同步的。
刚写的代码是随便复制的一段。(误解了)
我目的急需要朗读结束判断的代码来实现。
请问下SPEI_END_INPUT_STREAM表示朗读结束怎样使用?
嘿嘿,我不会,你自行研究,有结果告诉我。
lxl兄,可否帮忙。
实现语音设置感兴趣的事件:SetInterest
那个代码是 C/C++的
DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync 标志 只是简单的异步。
也就是另启一个线程朗读。这样在朗读时间比较长的情况下,不会使界面进入无响应的状态。
但是这种异步方式的缺点是无法指定“回调函数” 回调函数就是线程执行完成后,执行的函数。
所以只能自己实现异步编程了。
至于“取得语音在读的语句并光标随着变动。”需要根据语速计算每秒读的字符数了。
下面这个文件只是简单的开启线程来实现的,真正开发是封装成异步编程模式来实现的。
下载信息 [文件大小: 下载次数: ] | |
![]() |
哦,多谢了!但还是搞不定!