désolé mais ton code ne fonctionne pas chez moi j'ai aucun son qui sort

tu dira quoi gildev si sa tourne chez toi ?
@++
Code : Tout sélectionner
Global chemin$= "C:\"
Global nom_fichier$= "test.MID "
Code : Tout sélectionner
Global chemin$= "C:\test.mid"
Global nom_fichier$= "MATHILDE.MID "
Code : Tout sélectionner
Declare.b play_midi(chemin$,action$)
Declare TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
; ********* chemin du fichier midi a parametrer !! (vais pas tout faire non plus!! : o) ) **********
repertoire$= OpenFileRequester("fichier midi", "", "Fichiers midi|*.mid" , 0)
Global chemin$= GetPathPart(repertoire$)
Global nom_fichier$= GetFilePart(repertoire$)
chemin$=chemin$+nom_fichier$
;***************************************************************************
If OpenWindow (0, 100, 200, 195, 150, "yeeehaaa" , #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget )
Handle = WindowID (0)
CreateGadgetList (Handle)
TextGadget (0, 10, 10,250,20, "Patiente quelques secondes" )
; *************on prepare un timer ************** <-- pour la demo d'arret er relance du fichier midi
SetTimer_ (Handle, 1, 10000, @TimerProc()) ; envoie un evenement toutes les 10 secondes
SetTimer_ (Handle, 2, 11000, @TimerProc()) ; envoie un evenement toutes les 11 secondes
; *****************************************************************************
Global Buffer$= Space (128 ) ; <--- besoin pour la lecture
play_midi(chemin$, "load" ) ; on load le fichier midi (grace a ma belle procedure toute neuve)
play_midi(chemin$, "play" ) ; lance le morceau
SetGadgetText (0, "le morceau joue !! " )
;********* boucle principale ***************************
Repeat
EventID.l = WaitWindowEvent ()
If EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
play_midi(chemin$, "close" ) ; on ferme le fichier midi
EndIf
Until Quit = 1
; **************************************************
EndIf
End
; *********************************************
;******* Les procedures *************************
; *********************************************
Procedure.b play_midi(chemin$,action$) ; la super procedure qui charge, lit, stop,et close un midifile
; By Dobro
Select action$
Case "load"
mciSendString_ ( "open " + chemin$+ " type sequencer alias mid" ,Buffer$,128,0)
ProcedureReturn 0
Case "play"
mciSendString_ ( "play mid" ,0,0,0)
Case "stop"
mciSendString_ ( "stop mid" ,0,0,0)
Case "close"
mciSendString_ ( "CLOSE MIDI" ,0,0,0)
EndSelect
EndProcedure
Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l) ; le timer qui gere le temps de lecture et d'arret successif
Select uMsg
Case #WM_TIMER
Select idEvent
Case 1
Debug "--------------------10 seconde"
; Ici, le code à executer toutes les 10 secondes
play_midi(chemin$, "stop" ) ; on stop la lecture toute les 5 secondes
SetGadgetText (0, "le morceau est Stopé" )
Case 2
Debug "------------------------11 secondes"
; Ici, le code à executer toutes les 11 secondes
play_midi(chemin$, "play" ) ; on relance la lecture toute les 6 secondes
SetGadgetText (0, "le morceau est Relancé" )
EndSelect
EndSelect
EndProcedure
venom a écrit :quel boulet que je fait![]()
au lieu de faire comme ce-ci:
je procedais comme ça:Code : Tout sélectionner
Global chemin$= "C:" Global nom_fichier$= "test.MID "
Code : Tout sélectionner
Global chemin$= "C:\test.mid" Global nom_fichier$= "MATHILDE.MID "
pas besoin de faire d'essai !!gildev a écrit :C'est assez facheux car je fais mon prog sous Windows mais je le compile aussi sous Linux pour avoir mon appli sur les deux plateformes.
Je ferai un essai ce soir après le taf...
donc pas compatible sur Linux !mciSendString_ ( "play mid" ,0,0,0)
T'es fainéant quand même !vais pas installer Linux pour chercher quand meme