Problème avec le mmcontrol pour le son vb6 [Résolu]

kevindll 65 Messages postés lundi 11 mai 2015Date d'inscription 18 juillet 2016 Dernière intervention - 12 févr. 2016 à 07:31 - Dernière réponse : kevindll 65 Messages postés lundi 11 mai 2015Date d'inscription 18 juillet 2016 Dernière intervention
- 13 févr. 2016 à 08:29
Bonjour,
j'ai un probleme avec mon code je n'arrive pas à faire jouer different son en cliquant sur differentes options


Dim trackList(4) As String
Dim trackNumber As Integer

Private Sub Form_Load()
trackList(1) = "E:\bamba\hymne\japon.wav"
trackList(2) = "E:\bamba\hymne\afrique-sud.wav"
End Sub

Private Sub Option1_Click()
MMControl1.Command = "open"
MMControl1.FileName = trackList(1)
MMControl1.Command = "play"
MMControl1.Command = "pause"
End Sub

Private Sub Option2_Click()
MMControl1.Command = "open"
MMControl1.FileName = trackList(2)
MMControl1.Command = "play"
MMControl1.Command = "pause"
End Sub

quelqu'un pourrait bien m'aider SVP?
merci d'avance
Afficher la suite 

16 réponses

Répondre au sujet
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par ucfoutu le 12/02/2016 à 08:24
+1
Utile
Bonjour,
Voilà des siècles que je n'utilise plus ce contrôle, mais, de mémoire :
1) Il faut définir sa propriété DeviceType si tu veux qu'il reconnaisse le bain dans lequel il doit nager ===>>>
ce devrait donc être dans ton cas :
MMControl1.DeviceType = "WaveAudio"

2) il vaut mieux "laisser un peu de temps au temps"
a) pour ouvrir :
MMControl1.Wait = True
MMControl1.Command = "Open"

b) pour jouer :
 MMControl1.Wait = True
MMControl1.Command = "play"

... etc ...
3) je n'en suis pas certain, mais il me semble par ailleurs me rappeler que je "préparais" ce contrôle, dès le chargement du Form ..
Ainsi, crois-je (exemple. Mets tes paramètres à toi):
MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False
MMControl1.DeviceType = "WaveAudio"

4) j'observe que tu mets en pause dès que tu joues, mais que tu te plains de n'entendre aucun son ... ben ..... (!!!!)

5) ah oui ! Et bien sûr : déclare-lui le fichier .wav à jouer avant même les instructions mises plus haut en 2)a) ... (c'est évident).
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par ucfoutu le 12/02/2016 à 19:08
+1
Utile
Alors regarde :
Tu dis vouloir le faire en utilisant directement les boutons de ce contrôle ?
Je me suis "fendu" d'un petit essai, juste pour voir ===>>>
1) j'ai habilité tous ces boutons (cela se fait dans la fenêtre des propriétés du contrôle, tout simplement)
2) j'ai écrit/bâclé (vraiment bâclé) cela (et rien d'autre), sans même réfléchir :
Private Sub Form_Load()
MMControl1.Notify = False
MMControl1.Wait = False
MMControl1.Shareable = False
MMControl1.DeviceType = "WaveAudio"
End Sub
Private Sub Command1_Click()
MMControl1.filename = "D:\abcdef\modeles\actes-ec\timpo.wav"
MMControl1.Command = "Open"
End Sub
Private Sub Command2_Click()
MMControl1.filename = "D:\abcdef\modeles\acte-not\entreenot.wav"
MMControl1.Command = "Open"
End Sub
Private Sub Form_Unload(Cancel As Integer)
MMControl1.Command = "close"
End Sub
Private Sub MMControl1_StopClick(Cancel As Integer)
MMControl1.Command = "close"
End Sub

puis j'ai lancé, juste pour voir ...
aucun problème avec les boutons. Je choisis un fichier wav (un ou l'autre des 2 boutons de commande) puis me sers des boutons du contrôle, que ce soit pour jouer, mettre en pause, stopper, etc ...
===>> aucun problème (bien évidemment) !


________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 12 févr. 2016 à 23:04
+1
Utile
Ceci ayant été dit :
Je te suggère d'abandonner ce vieux contrôle devenu obsolète et dont l'aspect est loin d'être ragoutant.
Il existe tout de même des contrôles plus récents, dont, entre autres, le composant Windows Media Player, que tu devrais trouver dans ta liste des composants complémentaires.
Il est plus moderne, apte à reconnaître tous formats, apte à jouer tant ce qui se trouve sur ta machine que ce qui se trouve sur le net et mille fois plus simple à utiliser.
Pour l'utiliser comme tu dis vouloir le faire (en te servant des boutons du contrôle lui-même), rien de plus simple :
exemple :
Private Sub Command3_Click()
WindowsMediaPlayer1.URL = "D:\\abcdef\modeles\actes-ec\timpo.wav"
End Sub

Private Sub Command4_Click()
WindowsMediaPlayer1.URL = "D:\\abcdef\modeles\actes-ec\temp.wav"
End Sub

note bien les double \\ (importants)

Et si tu veux aller plus loin encore et gérer par code, etc ..., tu trouveras un cours complet là :
http://silkyroad.developpez.com/VBA/WindowsMediaPlayer/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
kevindll 65 Messages postés lundi 11 mai 2015Date d'inscription 18 juillet 2016 Dernière intervention - 12 févr. 2016 à 08:43
0
Utile
Je vois . Mais mon problème était que pendant la lecture je n'arrivais pas à changer de son tant que la musique n'était pas arrivée à la fin.
Commenter la réponse de kevindll
kevindll 65 Messages postés lundi 11 mai 2015Date d'inscription 18 juillet 2016 Dernière intervention - 12 févr. 2016 à 08:44
0
Utile
Mais je vais essayer d'appliquer ce que tu as dis.
Commenter la réponse de kevindll
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 12 févr. 2016 à 09:43
0
Utile
tout es résumé là :
http://www.vb-helper.com/howto_play_wav_asynchronously.html
applique donc
Et comprends également que "pause" n'est pas "stop"
Commenter la réponse de ucfoutu
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par ucfoutu le 12/02/2016 à 10:15
0
Utile
Et tu as même du plus clair dans ce source :
http://codes-sources.commentcamarche.net/source/2423-lecteur-avi-audio-video-interleaved
où la seule différence est celle de la propriété DeviceType de ton contrôle !
Vraiment ....

EDIT : et tu devrais (relis donc les règles de ce forum) utiliser le moteur de recherche (hé oui, il y en a un) de ce forum. Je viens de le faire tout bêtement, ... juste pour voir ...avec pour mot-clé ... devine quoi ? ===>> Mmcontrol !!!!!! ===>>> plusieurs sources avec du tout cuit sont là !!!
Fais-en donc autant, s'il te plait !

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
kevindll 65 Messages postés lundi 11 mai 2015Date d'inscription 18 juillet 2016 Dernière intervention - 12 févr. 2016 à 16:03
0
Utile
Mon problème n'est pas l'impossibilité de créer un lecteur mais plutôt sur la façon dont je le controle
Commenter la réponse de kevindll
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 12 févr. 2016 à 16:46
0
Utile
Oui ?
Et tu n'as pas trouvé cela dans les sources dont je te parle ? non ? vraiment ?

Commenter la réponse de ucfoutu
kevindll 65 Messages postés lundi 11 mai 2015Date d'inscription 18 juillet 2016 Dernière intervention - 12 févr. 2016 à 16:48
0
Utile
si j'ai rectifié mes erreurs pour que je puisse lire en enlevent les "pauses" mais le soucis c'est que j'ai l'impression que le programme lit uniquement les mêmes musiques pour chaque options
Commenter la réponse de kevindll
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par ucfoutu le 12/02/2016 à 17:04
0
Utile
Oui ?
Et ce sera ainsi tant que tu n'auras pas stoppé ce qui est en cours ...
Et "Pause" n'est pas "stop".
Tu ne me parais pas avoir vraiment lu les sources que je t'ai invité à lire !

Et je remarque par ailleurs que tu ouvres (tes "open") ce qui est déjà ouvert (par le 1er "open") ...
Bref ... tu me parais soit n'avoir rien lu (ni même le tout premier lien tout simple), soit être totalement incapable de suivre ce que tu lis ...

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
kevindll 65 Messages postés lundi 11 mai 2015Date d'inscription 18 juillet 2016 Dernière intervention - 12 févr. 2016 à 17:07
0
Utile
les boutons de mmcontrol sont utilisables ? même en appuyant "STOP" avec eux c'est pareil. Ou bien je dois forcement créer un bouton et play comme sur les codes que tu m'as présenté?
Commenter la réponse de kevindll
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - Modifié par ucfoutu le 12/02/2016 à 17:27
0
Utile
Tu peux toujours te contenter des boutons de ton contrôle, pour autant que tu les habilites !
Et dès lors : ta seule intervention par code est le choix du fichier à jouer, tout le reste étant géré par les boutons.
Mais tout cela est parfaitement expliqué dans ton aide VB6. Je commence à me demander si tu l'as au moins installé, cette aide ...
- si tu ne l'as pas installée, installe-la donc sans attendre. Elle est indispensable, y compris aux développeurs les plus avancés.
- si tu l'as installée : ouvre-la aux rubriques concernant le contrôle multimédia MCI et plus particulièrement la rubrique : Multimedia MCI Control ===>>> tout y est parfaitement expliqué, y compris, à la toute première rubrique, comment rendre fonctionnels ces boutons.

Et si tu préfères gérer par code, plutôt que pas ces boutons : ouvre et lis donc toutes les propriétés, méthodes et évènements relatifs à ce contrôle !
Je te laisse maintenant là.
Au boulot.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
kevindll 65 Messages postés lundi 11 mai 2015Date d'inscription 18 juillet 2016 Dernière intervention - 12 févr. 2016 à 21:24
0
Utile
j'avais aussi finir par faire fonctionner mais un problème persiste toujours . Quand on lit un son si on ne met pas pause et on lit un autre son les deux s'exécute à la fois et en plus j'ai l'impression que quand c'est comme sa on n'arrive pas à stopper les sons car les boutons deviennent inactif même en stoppant l'exécution du programme le son continue toujours
Commenter la réponse de kevindll
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 12 févr. 2016 à 22:02
0
Utile
Cela indique que ce contrôle est foireux (non pas le contrôle lui-même, mais le code correspondant à ses boutons).
La solution est alors de stopper, puis fermer systématiquement avant tout jeu de son.
Ainsi, par exemple, avec le bouton de commande command1 :
Private Sub Command1_Click()
MMControl1.Command = "stop"
MMControl1.Command = "close"
MMControl1.filename = "D:\abcdef\modeles\actes-ec\pastype.wav"
MMControl1.Command = "Open"
End Sub

idem pour le bouton 2
Commenter la réponse de ucfoutu
kevindll 65 Messages postés lundi 11 mai 2015Date d'inscription 18 juillet 2016 Dernière intervention - 13 févr. 2016 à 08:29
0
Utile
merci pour l'aide , je vais continuer de m'exercer.
Commenter la réponse de kevindll

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.