2011-02-07 6 views
3
Imports SpeechLib 

Public Class Form1 
    Public vox = CreateObject("sapi.spvoice") 

    Private Sub cmdSpeak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSpeak.Click 
     Dim text2 As String = "Hello , This is a Text. Hello , This is a Text." 
     BackgroundWorker1.RunWorkerAsync() 
    End Sub 

    Private Sub cmdPause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPause.Click 
     vox.pause() 
    End Sub 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     Dim SVEPhoneme As Integer = 64 
     vox.EventInterests = SVEPhoneme 
     vox.AlertBoundary = SVEPhoneme 
    End Sub 

    Private Sub cmdResume_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdResume.Click 
     vox.resume() 
    End Sub 

    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork 
     vox.Speak(Text, SpeechVoiceSpeakFlags.SVSFlagsAsync) 
    End Sub 
End Class 

어떻게 vox.speak에 text2를 전달할 수 있습니까? cmdSpeak_Click에서BackGroundWorker에 인수를 전달하는 방법

답변

12

,이 바보 같은 질문에 대한

vox.Speak(DirectCast(e.Argument, String), SpeechVoiceSpeakFlags.SVSFlagsAsync) 
+0

죄송 매개 변수의 값을 검색, BackgroundWorker1_DoWork에서 RunWorkerAsync

BackgroundWorker1.RunWorkerAsync(text2) 

에 매개 변수로 텍스트 2 통과하지만 매개 변수로 어떻게 텍스트 2 추가합니까 cmdSpeakClick에서? –

+0

마찬가지로'Private Sub cmdSpeak_Click (ByVal 보낸 사람으로 System.Object, ByVal e As System.EventArgs, ByVal text2 As String) 처리 cmdSpeak.Click' ?? –

+1

'BackgroundWorker1.RunWorkerAsync()'라인을'BackgroundWorker1.RunWorkerAsync (text2)'라인으로 바꾸십시오. – Jimmy

관련 문제