I objet utilise (SAPI) dans ma demande. Cependant, chaque fois que j'exécute sa fonction, la voix s'exécute mais la performance de l'application (tout le reste) est mise en pause jusqu'à ce que la voix se termine! Je me demande si cela a quelque chose à voir avec la priorité de cet objet parlant. Puis-je l'abaisser jusqu'à ce que le reste du code s'exécute en premier? o_OSAPI exécution Priorité
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
Can (Lara) dit "bienvenue" APRÈS avoir chargé le formulaire et son logo?
Merci.
Merci à Mme Lesley Gushurst, la voix fonctionne maintenant selon l'ordre de code (application apparaît, son logo, puis la voix). La solution consistait à ajouter une référence (com-reference) au projet "Microsoft Speech Object Library", puis à l'importer dans le code.
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
Voir la [** événement Form.Shown **] (https://msdn.microsoft.com/en-us/library/system.windows.forms.form.shown (v = vs.110) .aspx), mais vous pouvez l'exécuter dans un autre thread s'il s'agit d'un appel bloquant. –
Merci, monsieur Vincent. Mais ma question concerne la réduction de la priorité de SAPI en général. Ainsi, le gestionnaire d'événements SHOWN ne le fera pas. – Sky7ure
Il n'y a pas de "priorité" en ce qui concerne l'exécution de code. Il est synchrone, asynchrone ou multithread synchrone/asynchrone. –