PlaySound & Speech API

chrishack Messages postés 12 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 3 avril 2008 - 31 août 2007 à 19:04
chrishack Messages postés 12 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 3 avril 2008 - 3 sept. 2007 à 11:52
Salut à tous
besoin d'aide. Débutant. VB6. Merci
J'ai réalisé une interface qui permet d'appeler des clients, un affichage des appels en quelque sorte. il ya une longue liste et quand vous êtes appelé, l'interface vous le signale.
pour la liste des clients j'utilise un msflexgrid
en plus du signal visuel c'est à dire défilement du nom et clignotement des couleurs; j'utilise un signal sonore, un son bells.wav (comme dans les aéroports) et une Speech API pour pouvoir pronocer le nom du client. donc pour appeler une personne je fais jouer le son wav puis je lance un DirectSS pour faire parler mon interface. Ca fonctionne mais seulement:

- quand l'appli se lance, et que je dois appeler 2 personnes par exemple; au lieu de jouer le son wav puis parler, puis jouer le son wav et parler pour la deuxieme personne cette fois, il joue tous les sons wav que j'appelle avant de commencer à parler que je set playsound synchone ou assynchrone, ou que j'utilise tout juste un shell.
directSS fonctionne en arrière plan, remet la main apres s'être lancé or playsound garde la main ce qui fait que le clignotement s'arrete le temps que tous les playsound soient joués.
je ne sais pas si il ya un moyen de faire lire le wav avec directSS.

l'idéal pour moi serait que tout ceci (son wav et parlé) fonctionne comme dans une file d'attente FIFO l'un apres l'autre mais en arrière plan pour que le programme ne s'arrete pas à faire sonner ou à parler avant de clignoter par exemple

- je ne trouve pas un son wav qui correpond à la circonstance. j'ai jpour l'instant une sonnerie de porte: doorbell.wav  quelque chose de plus fun serait magnifique

MERCI ENCORE POUR L'AIDE
[mailto:christjani@yahoo.fr christjani@yahoo.fr]

2 réponses

sethlaerce Messages postés 30 Date d'inscription mardi 21 août 2007 Statut Membre Dernière intervention 4 octobre 2010
1 sept. 2007 à 15:53
slt c seth. si je pouvais avoir votre application je pourrai savoir de quoi il s'agit.
seth
0
chrishack Messages postés 12 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 3 avril 2008
3 sept. 2007 à 11:52
à chaque ligne tu msflexgrid l'appli vérifie le champs "anno" et effectue la tache
si la première ligne est à 8 et la suivante est 9 par exemple,
z = Shell s'exécute
directSS1 suit mais continue en arrière plan ce qui fait que
z = Shell pour la ligne suivante s'exécute  et
directSS1 pour la ligne suivante lui par contre s'ajoute dans la file d'attente d'exécution



-------------------- code -------------------
' pour chaque ligne:



If recTab.Fields("anno") = 8 Then
           
            z = Shell("sndrec32 /play " & "C:\waves\belltim2\doorbl2.wav", vbHide)
            DirectSS1.Speak (message)
           
            Call choixenable  ' fait clignoter la ligne choisie avec la couleur voulue
           
ElseIf recTab.Fields("anno") = 9 Then
            ' je ne sais pas si je dois utiliser Playsound ou Shell pour le son



            'PlaySound "C:\waves\belltim2\doorbl2.wav", ByVal 0&, SND_FILENAME Or SND_ASYNC
            'PlaySound vbNullString, ByVal 0&, SND_PURGE



             z = Shell("sndrec32 /play " & "C:\waves\belltim2\doorbl2.wav", vbHide)
            DirectSS1.Speak (message)           



            Call choixenable
           
End If
-------------------------------
je voudrais que tout ce qui est sonore s'effectue l'un apres l'autre mais en arrière plan si possible, pour ne pas bloquer le programme à ne faire que ca.
j'utilise un timer pour la routine parce que le programme doit tester la base apres un certain temps pour refresh la liste
j'utilise des timers pour faire clignoter les lignes



MERCI ENCORE
http://www.vbfrance.com/forum.v2.aspx?ID=1004701
0
Rejoignez-nous