begin process at 2010 02 10 11:16:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Multimédia

 > 

Audio

 > 

Problèmes fichiers audio


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problèmes fichiers audio

mardi 6 novembre 2007 à 14:00:52 | Problèmes fichiers audio

mstarsup5

Bonjour,

Je veux faire un petit jeu en vb6, avec une musique de fond et des soundfx en même temps.

J'utilise l'API mciSendString pour le son, qui permet, contrairement à l'API playsound, de jouer plusieurs fichiers audio en même temps.

Seulement, j'ai deux problèmes:
      Le premier, c'est que je ne trouve pas de commande pour lancer les fichiers en boucle.
(Je pourrais faire celà avec un timer par exemple, mais je trouve ça un peu barbare, alors peut être y a-t-il une fonction pour le faire?)
      Mon deuxième problème est que j'arrive à lire des fichiers .wav, mais je n'arrive pas à lire les fichiers .mp3 et .mid, alors que plusieurs sources sur le site montrent que celà est possible, toujours en utilisant mciSendString.
J'utilise exactement le même code que ces sources, et pourtant, aucun son ne sort.
Quelqu'un saurait comment faire pour faire marcher ces deux formats avec mciSendString?

J'utilise:


Dim ret AsLong, mp3file AsString

PrivateDeclareFunction mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand AsString, ByVal lpstrReturnString AsString, ByVal uReturnLength AsLong, ByVal hwndCallback AsLong) AsLong

PrivateSub Form_Load()
mp3file = "c:\xxx.mp3"
ret = mciSendString("OPEN " & mp3file & " Alias Sonido", 0, 0, 0) 'ouvre
ret = mciSendString("Play sonido", 0, 0, 0) 'Joue
EndSub

PrivateSub Form_QueryUnload(Cancel AsInteger, UnloadMode AsInteger) ret = mciSendString("Stop sonido", 0, 0, 0) 'Pause (si on fait lecture ca reprendra la) ret = mciSendString("Close sonido", 0, 0, 0) 'Arret (si on fait lecture ca recommence au debut)EndSub


Merci infiniment.

mardi 6 novembre 2007 à 14:19:00 | Re : Problèmes fichiers audio

mstarsup5

Apparamment, pour les mp3, ça ne veut pas lire dans les sous-dossiers... quelqu'un aurait une idée pour ça? je ne vais pas tout mettre dans C:\     :/

mardi 6 novembre 2007 à 14:25:05 | Re : Problèmes fichiers audio

mstarsup5

Ah, ça j'ai trouvé, il faut mettre:

mp3file = App.path  & "\xxx.mp3"
ret = mciSendString("OPEN """ & mp3file & """ Alias Sonido", 0, 0, 0) 'ouvre

Comme ça, les mp3 marchent.

Reste le problème des Midi, et comment faire tourner la musique en boucle.
mardi 6 novembre 2007 à 14:40:20 | Re : Problèmes fichiers audio

mstarsup5

Pour le fichier .mid, j'ai mis exactement ça:


Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Public FichierMid As Variant
Public Alias As String '----- identifiant du son en cours


Sub Play_Mid()
  ' indiquer ci-dessous le nom du fichier Midi à jouer
  ' ce fichier doit se trouver dans le meme repertoire que ce classeur
  FichierMid = "Shadoogie.mid"
  Alias = Left$(FichierMid, Len(FichierMid) - 4)
    '--------play midi
  r% = mciSendString("OPEN " + FichierMid + " TYPE SEQUENCER ALIAS " + Alias, 0&, 0, 0)
  r% = mciSendString("PLAY " + Alias + " FROM 0", 0&, 0, 0)
  r% = mciSendString("CLOSE ANIMATION", 0&, 0, 0)
End Sub

Sub Stop_Mid()
  On Error GoTo Finstop
  r% = mciSendString("OPEN " + FichierMid + " TYPE SEQUENCER ALIAS " + Alias, 0&, 0, 0)
  r% = mciSendString&("STOP " + Alias, 0&, 0, 0)
  r% = mciSendString&("CLOSE ANIMATION", 0&, 0, 0)
Finstop:
End Sub

Private Sub Command1_Click()
Play_Mid
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Stop_Mid
End Sub



et le fichier shadoogie.mid est dans le même dossier que mon programme...
Pourtant, ça ne marche pas.

mardi 6 novembre 2007 à 14:41:58 | Re : Problèmes fichiers audio

medelidrissi

Membre Club
Bonjour,

Pour le relecteur automatique :

ret = mciSendString("Play sonido repeat", 0, 0, 0) 'Joue

et pour toute autre information : http://msdn2.microsoft.com/en-us/library/ms712842.aspx

Bonne programmation.

Cordialement medelidrissi


En Informatique, rien n'est impossible. Mais, ce n'est pas toujours évident.
mardi 6 novembre 2007 à 15:10:26 | Re : Problèmes fichiers audio

mstarsup5

Merci pour la commande repeat medelidrissi!
Ca marche impec pour les mp3, mais j'ai toujours deux problèmes: je n'arrive pas à faire marcher repeat avec les .wav, et les .mid ne fonctionnent pas du tout!
Je continue de chercher.
mardi 6 novembre 2007 à 15:34:56 | Re : Problèmes fichiers audio

mstarsup5

Je m'explique: pour ouvrir le fichier mp3, je mets:

    Dim sFichier As String
    Dim r As Long
    sFichier = App.Path & "\FFVII.mp3"
   
    r = mciSendString("OPEN """ & sFichier & """ ALIAS FFVII" & Chr$(0), 0&, 0, 0)
    r = mciSendString("PLAY FFVII FROM 0", 0&, 0, 0)
    r = mciSendString("CLOSE ANIMATION", 0&, 0, 0)

Pour lancer le repeat, j'intercale repeat entre FFVII et FROM, et tout marche bien.

Pour le fichier wav, j'ai:

    Dim sFichier As String
    Dim r As Long
    sFichier = App.Path & "\Metrocross.wav"
   
    r = mciSendString("OPEN """ & sFichier & """ TYPE WAVEAUDIO ALIAS WAV1" & Chr$(0), 0&, 0, 0)
    r = mciSendString("PLAY WAV1 FROM 0", 0&, 0, 0)
    r = mciSendString("CLOSE ANIMATION", 0&, 0, 0)

Ca lance bien le programme, tout est ok, mais si j'essaie d'intercaler repeat entre WAV1 et FROM, la musique ne se lance pas.

Pour le mid, j'ai:

    Dim sFichier As String
    Dim r As Long
    sFichier = App.Path & "\Descent.mid"
   
    r = mciSendString("OPEN """ & sFichier & """ TYPE SEQUENCER ALIAS MID1" & Chr$(0), 0&, 0, 0)
    r = mciSendString("PLAY MID1 FROM 0", 0&, 0, 0)
    r = mciSendString("CLOSE ANIMATION", 0&, 0, 0)

Et la, ça lance carrément rien, je n'ai aucun son qui sort.
J'ai bien vérifié les adresses des fichiers audio, et j'ai ouvert les fichiers en dehors du programme, tout fonctionne.
Sais tu d'où vient le problème?
mardi 6 novembre 2007 à 15:52:03 | Re : Problèmes fichiers audio

medelidrissi

Membre Club
Re-Salut,

Pour les midis, chez moi ca marche sans prob :
ret = mciSendString&("CLOSE SonMidi", 0&, 0, 0)
ret = mciSendString("OPEN ""C:\WINDOWS\Media\flourish.mid"" TYPE SEQUENCER Alias SonMidi", 0, 0, 0) 'ouvre
ret = mciSendString("Play SonMidi", 0&, 0, 0) 'Joue

En ce qui concerne le repeat d'une sequence wav, c'est vrai ca ne marche pas !!!!!!.

Bonne programmation.

Cordialement medelidrissi


En Informatique, rien n'est impossible. Mais, ce n'est pas toujours évident.
mardi 6 novembre 2007 à 16:12:08 | Re : Problèmes fichiers audio

mstarsup5

Re,

Je viens de copier coller ton code dans mon pgme:

Private Sub Command5_Click()
Dim ret As Long
ret = mciSendString&("CLOSE SonMidi", 0&, 0, 0)
ret = mciSendString("OPEN ""C:\WINDOWS\Media\flourish.mid"" TYPE SEQUENCER Alias SonMidi", 0, 0, 0) 'ouvre
ret = mciSendString("Play SonMidi", 0&, 0, 0) 'Joue
End Sub

J'ai bien vérifié que le midi était là, tout ok, à part que je n'ai toujours aucun son :'(
Et pour les fichiers wav, c'est bizarre que le repeat marche pas non plus :'(
Il doit y avoir quelque chose à configurer pour que tout ça marche, si quelqu'un sait, je suis preneur :'(

Merci beaucoup, et merci encore une fois medelidrissi

mardi 6 novembre 2007 à 18:25:39 | Re : Problèmes fichiers audio

mstarsup5

Ca yest, j'ai trouvé pour le mid, j'avais un problème de config (niveau son, et niveau vb6)
Par contre, je trouve toujours pas comment faire marcher la fonction repeat pour les .wav et les .mid.

1 2

Cette discussion est classée dans : fichiers, ret, mcisendstring, byval, sonido


Répondre à ce message

Sujets en rapport avec ce message

mciSendString pour lire des fichiers wave dans un fichier de ressources [ par Daghis ] Bonjour à tous,Cela fait plusieurs jours que je cherche en vain sur le Net pour résoudre mon problème :J'ai fait un petit programme auquel je veux ajo valeur intercepté par GetAsyncKeyState [ par Cjvg ] Bonjour,Sub TimerProc(ByVal Hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)    Ret = GetPressedKey    If Ret Probleme avec winmm.dll [ par Luciol44 ] Salut,Voila, j'utilise ce petit code pour recuperer la durée d'un son:Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (B Interuption audio [ par ClaudeRidger ] Bonjour, Voilà, en VB6  je met en route toutes sortes de prog ou fichiers avec ce code que j'ai trouvé ici :http://www.vbfrance.com/infomsg_PPS_5321 Jouer des fichiers MP en boucle avec MciSendString [ par touil ] Je voudrais savoir comment jouer des fichiers MP3 en boucle ou tout simplement comment détecter la fin d'un fichier mp3 qui vient d'être joué, sachant Problème VB 2008 [ par caphorn ] Bonjour,Dans un programme, j'appelle une fonction d'une DLL DBDATA32XLib.dll dont je n'ai pas le code : elle est installée dans le dossier d'un logici pb lecture fichier MP3 [ par toto ] bonjour, j'utilise le code suivant(voir après mon baratin) disponible sur vbfrance pour lire un fichier MP3.Le fichier est lu correctement, par contre Lister Recursivement des repertoires et fichiers [ par benxen ] Hello,Je souhaierais savoir comment faire en VB pour lister les répertoires, sous-rep, sous-sous-rep, etc... d'un répertoire (ex: c:\winnt\)(de meme p URGENT:Utilisation copyfile+recherche chemin d'acces fichiers [ par stann ] Salut!!J'ai creer 1 application nomme par ex ESSAI qui sera distribuéesur d'autres configurations!Cette application comprend des fichiers a,b,c depend URGENT:recherche chemin d'acces fichier+copyfile [ par stann ] Salut!!J'ai creer 1 application nomme par ex ESSAI qui sera distribuéesur d'autres configurations!Cette application comprend des fichiers a,b,c depend


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales