私は自分のアプリケーションで(SAPI)オブジェクトを使用します。ただし、その機能を実行するたびに、音声は実行されますが、音声が終了するまで、アプリケーションのパフォーマンス(他のすべて)は一時停止します。私はそれがこのSpeaking-Objectの優先順位と関係があるのだろうかと思います。コードの残りの部分が最初に実行されるまで何とかそれを下げることができますか? o_OSAPI実行優先
Private Function Lara(ByVal script As String) As Object
Lara = CreateObject("SAPI.spvoice")
Lara.Voice = Lara.GetVoices.Item(1)
Return Lara.speak(script)
End Function
Private Sub Test_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Logo.Visible = True
Logo.Image = ResizeImage(My.Resources.Spell)
Lara("Welcome")
End Sub
フォームとそのロゴを読み込んだ後に「歓迎」と言うことができますか?
ありがとうございます。
Ms. Lesley Gushurstのおかげで、音声はコードオーダー(アプリケーションが表示され、ロゴが表示され、次に音声)に従って実行されます。解決策は、 "Microsoft Speech Object Library"という名前のプロジェクトに(com-reference)を追加してからコードにインポートすることでした。
Imports SpeechLib
Private Sub Test_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Logo.Visible = True
Logo.Image = My.Resources.Spell
Dim Lara = CreateObject("SAPI.spvoice")
Lara.Voice = Lara.GetVoices.Item(1)
Lara.speak("Welcome", SpeechVoiceSpeakFlags.SVSFlagsAsync) 'It's declared now!
End Sub
[** Form.Shownイベント**](https://msdn.microsoft.com/en-us/library/system.windows.forms.form.shown(v = vs.110).aspxを参照してください。 )、しかし、それがブロッキング呼び出しの場合、別のスレッドでこれを実行したいかもしれません。 –
ありがとう、ヴィンセント氏。しかし、私の質問は、一般的にSAPIの優先順位を下げることです。したがって、SHOWNイベントハンドラはそれを達成しません。 – Sky7ure
コード実行に関しては、「優先度」などはありません。これは、同期、非同期またはマルチスレッドの同期/非同期のいずれかです。 –