Problème avec le mmcontrol pour le son vb6

Résolu
Utilisateur anonyme - 12 févr. 2016 à 07:31
 Utilisateur anonyme - 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

16 réponses

ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Modifié par ucfoutu le 12/02/2016 à 08:24
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.
1
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Modifié par ucfoutu le 12/02/2016 à 19:08
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.
1
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
12 févr. 2016 à 23:04
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/
1
Utilisateur anonyme
12 févr. 2016 à 08:43
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
12 févr. 2016 à 08:44
Mais je vais essayer d'appliquer ce que tu as dis.
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
12 févr. 2016 à 09:43
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"
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Modifié par ucfoutu le 12/02/2016 à 10:15
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.
0
Utilisateur anonyme
12 févr. 2016 à 16:03
Mon problème n'est pas l'impossibilité de créer un lecteur mais plutôt sur la façon dont je le controle
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
12 févr. 2016 à 16:46
Oui ?
Et tu n'as pas trouvé cela dans les sources dont je te parle ? non ? vraiment ?

0
Utilisateur anonyme
12 févr. 2016 à 16:48
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
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Modifié par ucfoutu le 12/02/2016 à 17:04
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.
0
Utilisateur anonyme
12 févr. 2016 à 17:07
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é?
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Modifié par ucfoutu le 12/02/2016 à 17:27
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.
0
Utilisateur anonyme
12 févr. 2016 à 21:24
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
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
12 févr. 2016 à 22:02
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
0
Utilisateur anonyme
13 févr. 2016 à 08:29
merci pour l'aide , je vais continuer de m'exercer.
0