Foxtable(狐表)用户栏目专家坐堂 → 语音朗读功能如何控制?


  共有3307人关注过本帖树形打印复制链接

主题:语音朗读功能如何控制?

帅哥哟,离线,有人找我吗?
zhangchi96
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
语音朗读功能如何控制?  发帖心情 Post By:2014/4/19 14:01:00 [只看该作者]

请教:

 

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

 

SpVoice有三个方法,分别为:

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/19 14:05:00 [只看该作者]

帮助有介绍停止朗读 http://www.foxtable.com/help/topics/2240.htm

 回到顶部
帅哥哟,离线,有人找我吗?
zhangchi96
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By:2014/4/19 14:25:00 [只看该作者]

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
zhangchi96
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/19 15:52:00 [只看该作者]

谢谢分享

 回到顶部
帅哥哟,离线,有人找我吗?
zhangchi96
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:555 积分:5037 威望:0 精华:0 注册:2012/2/11 13:27:00
  发帖心情 Post By:2014/4/19 23:32:00 [只看该作者]

 

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/20 10:50:00 [只看该作者]

以下是引用zhangchi96在2014-4-19 23:32:00的发言:

请教Bin:

语句

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

 

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


 

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


 回到顶部