Detecter la fin de lecture d'une MIDI avec lecture via MCI, & boucle?

Detecter la fin de lecture d'une MIDI avec lecture via MCI, & boucle? - C++ - Programmation

Marsh Posté le 14-09-2004 à 19:44:27    

Bonjour. :hello:
 
Je me sert de la MCI (en c++) de windows afin de pouvoir lire une musique midi, et dans le but de lire la musique en boucle, ou de passer à une musique suivante une fois la lecture terminée, j'aimerais pouvoir detecter la fin de lecture du midi. Et là il y a un enorme packet de commande à envoyer à la MCI sur msdn, et après pas mal de recherche je n'ai pas trouvé mon bonheur.
 
Pourtant ca ne doit pas être trop compliqué de lire une midi en boucle ou de lire plusieurs midi les unes à la suite des autres non ? Il me faudrait juste savoir quand est-ce que la musique est finie afin de pouvoir lancer la suivante... :) (ou la meme dans le cas d'une boucle)
 
Si quelqu'un connait la commande magique, je suis preneur car là je galère là dessus depuis hier, alors qu'il doit suffire de trouve le bon MCI_TRUCBIDULE à envoyer... :'(
 
Mercÿte :jap:

Reply

Marsh Posté le 14-09-2004 à 19:44:27   

Reply

Marsh Posté le 14-09-2004 à 20:57:28    

ché pas, j'ai jamais utilisé, ptet qu'il y a un message qui t'es envoyé ?

Reply

Marsh Posté le 14-09-2004 à 23:26:54    

Beh je ne crois pas... En revanche je pense qu'il doit être possible d'interroger le MCI pour savoir s'il a fini sa lecture, mais je ne trouve pas comment... :/

Reply

Marsh Posté le 15-09-2004 à 16:30:35    

Toujours pas trouvé... :'(
 
Moi je lance la lecture avec cette commande, il doit y avor un paramètre qui fait en sorte que la lecture se fasse en boucle non ? :'(

Code :
  1. MCI_PLAY_PARMS mciPlayParms;
  2.   if (mciSendCommand(m_uiMIDIPlayerID, MCI_PLAY, 0,
  3.     (DWORD_PTR)&mciPlayParms) != 0)

Reply

Marsh Posté le 15-09-2004 à 17:44:06    

J'ai fini par trouver. Comme prévu c'etait tout bete mais fallait trouver le bon truc...
 
Je donne la solution pour ceux que ca interesserait : :)
 
Alors il suffisait donc de lancer la musique avec le message "MCI_NOTIFY" et de renseigner mciPlayParms comme ci dessous, de manière à ce que le message "MM_MCINOTIFY" soit renvoyé à notre chère winproc() quand la lecture est terminée.
 

Code :
  1. mciPlayParms.dwCallback = (DWORD)m_hWindow; //m_hWindow etant bien sur le descripteur de la fenêtre


 
Ce qui donne donc cela pour lancer la lecture :

Code :
  1. MCI_PLAY_PARMS mciPlayParms;
  2.   mciPlayParms.dwCallback = (DWORD)m_hWindow;
  3.   if (mciSendCommand(m_uiMIDIPlayerID, MCI_PLAY, MCI_NOTIFY,
  4.     (DWORD_PTR)&mciPlayParms) != 0)


Message édité par Jesus Army le 15-09-2004 à 17:44:36
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed