2011-02-07 23 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_ClickBackGroundWorkerに引数を渡す方法

答えて

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はSystem.EventArgsとして、ByValはtext2としてString)ハンドルcmdSpeak.Click' ?? –

+1

'BackgroundWorker1.RunWorkerAsync()'行を 'BackgroundWorker1.RunWorkerAsync(text2)'に置き換えてください – Jimmy

関連する問題