以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  设置语音朗读后有的电脑出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90382)

--  作者:鲁吉
--  发布时间:2016/9/11 17:48:00
--  设置语音朗读后有的电脑出错
软件设置了语音校对,发布以后在有的电脑上报错,一检查电脑没有插音箱也没有插耳机,插上之后就不报错了。
这可能与我们的软件没有关系,但总是不爽,谁有好的建议?

--  作者:有点蓝
--  发布时间:2016/9/12 8:22:00
--  
修复一下tts看看 :http://www.baidu.com/baidu?wd=win7+tts&tn=monline_4_dg
--  作者:sloyy
--  发布时间:2019/4/3 10:12:00
--  
我最近也遇到同样的问题,经过检查发现:联想的电脑,在不插音箱或者耳机的情况下,声卡的服务就停止了,导致程序出错,一插音箱或者耳机,服务就启动了,程序正常运行
,我现在想在程序里用代码做一个检测,如果声卡服务停止,就关闭语音校对,foxtable没找到这个函数,有什么办法吗?

--  作者:有点甜
--  发布时间:2019/4/3 11:12:00
--  

检测服务是否开启,参考

 

1、添加dll引用 System.ServiceProcess.dll

 

2、执行代码

 

Dim sc = System.ServiceProcess.ServiceController.GetServices
For Each s As object In sc
    If s.ServiceName.ToLower = "mssqlserver" OrElse s.ServiceName.ToLower.indexof("mssql") >= 0 Then
        output.show(s.ServiceName)
    End If
Next


--  作者:sloyy
--  发布时间:2019/4/3 12:03:00
--  
我采用了一个更简便的办法:捕获异常错误
先设置一个全局变量: 语音播报开关 YYBB 默认为TRUE

If YYBB= True Then
    TRY
        sp.Speak("请输入您要登陆用户的账号", DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)
    Catch ex As Exception
        YYBB= False
    End TRY
End If

这样 后面就简单了:

If YYBB= True Then
   sp.Speak("欢迎您登陆XX管理系统", DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)
End If