以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  朗读问题- 异步朗读  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63062)

--  作者:ljh29206
--  发布时间:2015/1/13 11:18:00
--  朗读问题- 异步朗读

请教

 

我在设置异步朗读的时候经常会出现朗读不完整的情况。

 

特别是  同一时间 有2个 语句需要进行 朗读 ,  经常就只读 1到2个字符  就没了 。

 

同步朗读 就没有问题。    

 

该怎么调整?


--  作者:Bin
--  发布时间:2015/1/13 11:19:00
--  
就算是异步,也不应该同时朗读2个语句,就算不出错,你能听清吗?
--  作者:ljh29206
--  发布时间:2015/1/13 12:08:00
--  

我 用  for  next  语句  进行 朗读。

 

应该  进行几次 next   的循环     也算是不在同一时间  (可能要用毫秒来区分!)

 

 

但 异步朗读  就 不会朗读完整。

 

 

同步 就可以 。。。

 

代码如下

Dim sp As New DotNetSpeech.SpVoice()
If Forms("出货管理板").Opened  Then
    Dim dt As DataTable = DataTables("出货基础信息表")
    For Each  dr As DataRow In dt.DataRows
        If dr("单") = True Then
            For i As Integer = 2 To 4
                If dr(dt.DataCols(i).Name) = Format(Date.Now,"HH:mm") Then
                    Dim str As String = (dr(dt.DataCols("客户")) & "," & dr(dt.DataCols(1).Name) & "," & dt.DataCols(i).Name.Replace("计划开始","")  & ",时间," &  Format(dr(dt.DataCols(i).Name),"HH:mm") & "到了,请作业!")
                    sp.Speak(str ,DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync) \' DotNetSpeech.SpeechVoiceSpeakFlags.SVSFDefault)
                End If
            Next
        End If
    Next
End If

 

颜色部分  异步朗读 老是读不出来。

[此贴子已经被作者于2015-1-13 12:14:39编辑过]

--  作者:qianqian1530
--  发布时间:2015/1/13 13:22:00
--  
上传列子看看
--  作者:Bin
--  发布时间:2015/1/13 13:48:00
--  
测试没问题,上个例子看看
--  作者:有点甜
--  发布时间:2015/1/13 14:02:00
--  

 这句放在循环里面看看

 

Dim sp As New DotNetSpeech.SpVoice()


--  作者:ljh29206
--  发布时间:2015/1/14 10:02:00
--  

代码 在 计划任务 里面 。

 

1、朗读的功能 会因为  其他操作  打断,

 

2、朗读的语句多的时候 会自动 打断。 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文件夹 (2) - 副本.zip


--  作者:ljh29206
--  发布时间:2015/1/14 10:22:00
--  

顶起 , 老师帮忙测试一下


--  作者:Bin
--  发布时间:2015/1/14 10:29:00
--  
亲,怎么操作怎么重现问题?
--  作者:有点甜
--  发布时间:2015/1/14 10:36:00
--  

 把这句代码写到全局代码那里去。

 

Public sp As New DotNetSpeech.SpVoice()

 

 其余的调用不要定义了,直接写 sp.Speak(str ,DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)