以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  语音朗读功能如何控制?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49525)

--  作者:zhangchi96
--  发布时间:2014/4/19 14:01:00
--  语音朗读功能如何控制?

请教:

 

说明书上有关于语音朗读的一段话:

 

SpVoice有三个方法,分别为:

Speak: 朗读文本
Pause
: 暂停朗读
Resume
:继续朗读

 

我已经在全局代码和表事件中都增加了代码,并且有了朗读功能,假如我在修改数据的时候刚好听音乐或者就暂时不想听语音朗读了,想在菜单里添加菜单按钮或者添加个组合框,内置 朗读、静音两个选项,如果实现这个功能呢?


--  作者:Bin
--  发布时间:2014/4/19 14:05:00
--  
帮助有介绍停止朗读 http://www.foxtable.com/help/topics/2240.htm
--  作者:zhangchi96
--  发布时间:2014/4/19 14:25:00
--  

找到了,做了一下,但功能不合适。

我发现这其中停止朗读功能是在朗读的过程中停止朗读,但下一个文本修改时候仍然继续朗读,我原来需要的是关闭朗读功能,一直到点击【朗读】按钮按下之前,每次的修改都不再朗读了。


--  作者:zhangchi96
--  发布时间:2014/4/19 15:46:00
--  

设置了一个间接的办法,解决问题1

 

1、在菜单设置中增加了组合框【语音开关】,列表项目按钮分别为【朗读】和【静音】

 

2、在需要朗读的表属性的 ValidateEdit 事件中,添加了一个判断语句:

 

Dim mc As RibbonMenu.ComboBox = RibbonTabs("系统管理").Groups("朗读功能").Items("语音开关")
If mc.text = "朗读" Then
    sp.Speak(e.text, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)  \'语音校对用,sp为全局变量用已定义
ElseIf mc.text = "静音" Then
End If

(其中 sp为 全局变量里 定义的代码,定义语句为:Public sp As New DotNetSpeech.SpVoice()  \'语音校对用 设定变量

 

3、如果在窗体中需要开关朗读语音,可以设个按钮,给菜单的组合框赋值,估计也是可行的。

 

请Bin 审阅,不吝赐教。


--  作者:Bin
--  发布时间:2014/4/19 15:52:00
--  
谢谢分享
--  作者:zhangchi96
--  发布时间:2014/4/19 23:32:00
--  

 

[此贴子已经被作者于2014-4-20 10:30:26编辑过]

--  作者:有点甜
--  发布时间:2014/4/20 10:50:00
--  
以下是引用zhangchi96在2014-4-19 23:32:00的发言:

请教Bin:

语句

Dim mc As RibbonMenu.ComboBox = RibbonTabs("系统管理").Groups("朗读功能").Items("语音开关")

 

把它写到窗体的Afterload 事件中,运行时说不存在名称为 【系统管理】的功能区,而我想用MC的值来确定 窗体中的某个按钮“语音开关”的初始值,请问如何修改代码才行呢?谢谢!


 

要么,你是没有 【系统管理】 这个菜单;要么,你是没有切换到【用户菜单】