Foxtable(狐表)用户栏目专家坐堂 → 暂停朗读


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

主题:暂停朗读

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


加好友 发短信
等级:二尾狐 帖子:558 积分:4352 威望:0 精华:2 注册:2011/4/18 8:27:00
暂停朗读  发帖心情 Post By:2013/3/1 9:52:00 [只看该作者]

 

窗口1_Button2_Click

 

Dim d As String = e.Form.controls("TextBox2").value

Dim sp As New DotNetSpeech.SpVoice()

sp.Voice = sp.GetVoices(String.Empty,String.Empty).Item(0) '语音库

sp.rate = -1 '低速

sp.Speak(d, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)

 

窗口1_Button3_Click

 

Dim sp As New DotNetSpeech.SpVoice()

sp.Pause()  '暂停

'sp.Resume() '继续

 

执行暂停朗读操作无效,请问如何设置?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/1 9:57:00 [只看该作者]

你这样做,每个事件中的sp都是各自独立。

 

建议

 

1、在全局代码中加上:

 

public sp As New DotNetSpeech.SpVoice()

 

2、删除所有事件中的:

 

Dim sp As New DotNetSpeech.SpVoice()


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


加好友 发短信
等级:二尾狐 帖子:558 积分:4352 威望:0 精华:2 注册:2011/4/18 8:27:00
  发帖心情 Post By:2013/3/1 10:33:00 [只看该作者]

请问有停止朗读的方法吗?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/1 10:34:00 [只看该作者]

2楼告诉你方法了啊

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


加好友 发短信
等级:二尾狐 帖子:558 积分:4352 威望:0 精华:2 注册:2011/4/18 8:27:00
  发帖心情 Post By:2013/3/1 10:56:00 [只看该作者]

假如第1个单元格朗读到一半,这时候想朗读第2个单元格,如何设置?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/1 11:06:00 [只看该作者]

sp.pause
sp = New DotNetSpeech.SpVoice()

sp.Speak(
"新的内容"
, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)

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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2013/3/1 13:29:00 [只看该作者]

全局代码:

Public spv As New DotNetSpeech.SpVoice() '全局变量至少3个字符
Public speak0 As String ="0" '状态标志,=1为开启语音朗读,=0为禁止,这是专门针对没有音箱或耳机的计算机设置的

菜单中“语音朗读”按钮代码:

属性:类型为状态按钮,按下取false

事件:

Static ts As RibbonMenu.ToggleButton
If ts Is Nothing Then
    ts = RibbonTabs("日常工作").Groups("整表操作").Items("语音朗读") '自己改
End If
If speak0="1" Then
    ts.pressed =False
    speak0="0"
    spv.pause
Else
    ts.pressed=True
    speak0="1"
    spv.resume
End If

表的ValidateEdit事件代码:

If speak0="1" Then
    spv.rate=-1 '设置语速
    spv.Speak(e.text, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFlagsAsync)
End If

 

如果开启,输入完后会自动朗读

一般情况下可以不用pause和resume

 


 

[此贴子已经被作者于2013-3-1 13:37:26编辑过]

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


加好友 发短信
等级:二尾狐 帖子:558 积分:4352 威望:0 精华:2 注册:2011/4/18 8:27:00
  发帖心情 Post By:2013/3/1 17:09:00 [只看该作者]

已解决。

 

'停止播放:

spv.Speak(String.Empty, DotNetSpeech.SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak)

[此贴子已经被作者于2013-3-2 15:23:57编辑过]

 回到顶部