Interface: ISpeechVoiceStatus
RunningState Property
The RunningState property retrieves the run state of the voice, which indicates whether the voice is speaking or inactive.
The values of the RunningState property are contained in the SpeechRunState enumeration.
Syntax
Set: | (This property is read-only) |
Get: | SpeechRunState = ISpeechVoiceStatus.RunningState |
Parts
- ISpeechVoiceStatus
- The owning object.
- SpeechRunState
-
Set: (This property is read-only)
Get: A SpeechRunState constant returning the run state of the voice.
Example
The following Visual Basic form code demonstrates the use of the RunningState property of an ISpeechVoiceStatus object. To run this code, create a form with the following controls:
Paste this code into the Declarations section of the form.
The Form_Load procedure places a sentence in the text box and creates two voice objects, one with an alert Priority setting. In the Command1_Click procedure, the timer is activated, and the normal Priority voice enqueues the contents of the text box, and waits a tenth of a second. Then the alert Priority voice speaks a short stream which interrupts the normal voice.
The timer procedure changes the color of the text box depending on the run state of the normal voice. When the normal voice is speaking, the text color is red; when it is done speaking, the text color is blue; when the voice is not speaking, the text color is black.
The text color change in this example has no significance other than indicating the running state of the normal voice.
Option Explicit
Private V As SpeechLib.SpVoice
Private VHim As SpeechLib.SpVoice
Private Sub Command1_Click()
Timer1.Interval = 250
Timer1.Enabled = True
'Make sure normal voice starts first
V.Speak Text1.Text, SVSFlagsAsync
V.WaitUntilDone (100)
VHim.Speak "Alert voice!", SVSFlagsAsync
End Sub
Private Sub Form_Load()
Set V = New SpVoice
Text1.Text = "turn this text red while the voice is speaking it"
Set V.Voice = V.GetVoices("Gender=Female").Item(0)
Set VHim = New SpVoice
VHim.Priority = SVPAlert
Set VHim.Voice = VHim.GetVoices("Gender=Male").Item(0)
End Sub
Private Sub Timer1_Timer()
Select Case V.Status.RunningState
Case SRSEIsSpeaking
Text1.ForeColor = vbRed
Case SRSEDone
Text1.ForeColor = vbBlue
Case Else
Text1.ForeColor = vbBlack
End Select
End Sub