Détecter fin de la lecture d'un fichier son avec mciSendString

Résolu
PierreAd Messages postés 63 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 20 février 2006 - 11 oct. 2005 à 18:03
PierreAd Messages postés 63 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 20 février 2006 - 13 oct. 2005 à 00:59
Salut a tous,



Voila mon petit probleme : j'ai travaillé cet apres midi sur une petite
appli que j'avais codé rapidement il y a quelques mois, j'ai voulu
l'améliorer un peu... en fait cette appli joue un morceau de musique a
un instant T, j'ai voulu remplacer l'unique morceau de musique par une
playlist...



Seulement, j'ai un petit soucis, je ne sais pas comment faire pour lancer une chanson une fois que la précédente est terminée
: en fait, je n'arrive pas a récupérer l'état de la lecture du morceau
précédent.... donc je ne sais pas a quel moment je dois lancer la
lecture du second morceau !!!



Pour la lecture j'utilise :

mciSendString "open ........", 0, 0, 0

mciSendString "play .........", 0, 0, 0



Voilà, j'espere que vous pourrez m'aider !!! J'ai eu beau chercher sur le net, je n'ai pas trouvé grand chose (à part la doc de la MSDN mais j'ai beaucoup de mal avec....)...

Cordialement,





PierreAd




Mon Site v.2

2 réponses

PierreAd Messages postés 63 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 20 février 2006
13 oct. 2005 à 00:59
Bon en fait je viens de trouver !!!



Je poste la solution pour ceux que ça intéresse.... mon probleme venait
du fait que je n'avais pas instancié les variables qui devaient me
retourner le status de la lecture ==> ça fonctionnait pas...
déclarée en string * 255....voili voilou !!





Public Sub playMP3(byval strCheminC as string)

Dim TotalTimes As String * 255

Dim modeLect As String * 255



'fermeture au cas ou

Call mciSendString("CLOSE " & strCheminC, 0, 0, 0)



'on ouvre ce fichier son et on le lit

Call mciSendString("OPEN "
& strCheminC & " ALIAS " & strCheminC, 0, 0, 0)

Call mciSendString("PLAY " & strCheminC, 0, 0, 0)





'Calcul de la longueur totale du fichier joué

Call mciSendString("SET "
& strCheminC & " TIME FORMAT MS", TotalTimes, 255, 0&)

Call mciSendString("STATUS "
& strCheminC & " LENGTH", TotalTimes, 255, 0&)

MsgBox Str(TotalTimes)






Call mciSendString("STATUS " & strCheminC & " MODE", modeLect, 255, 0&)

MsgBox modeLect



End Sub
Mon Site v.2
3
PierreAd Messages postés 63 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 20 février 2006
13 oct. 2005 à 00:47
Salut a tous,



Bon j'avance tout doucement... je parviens a présent a récupérer la
longueur du fichier joué... apparemment il existe un moyen de
déterminer l'état de la lecture d'un fichier (stopped, paused, playing
....) en utilisant :



mciSendString ("status alias mode", strModeResult, 255, 0)



Mais ça me renvoit toujours 0.... j'ai aussi essayé le "status alias
position" mais même probleme, ça me renvoit toujours 0 même pendant la
lecture du fichier.... si vous pouviez me donner un petit coup de pouce
ce serait gégé ^_^



Merci d'avance, et bonne fin de soirée a tous,





PierreAd




Mon Site v.2
0
Rejoignez-nous