Mon petit lecteur mp3

Programmation d'applications complexes
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Mon petit lecteur mp3

Message par jbernard13 »

bonjour, voici un petut lecteur mp3 que j'ai crée , bon ils manquent pleins de fonctions , j'aietudier des bouts de codes et lu la doc ensuite pour crée mon propre lecteur .


Code : Tout sélectionner

; *** Petit lecteur mp3 ***
; ***Ecris par jbernard13***

;** Constantes **

; ** Fenetre**
Enumeration
  #Fenetre_music
EndEnumeration





; ** Gadgets **

Enumeration
  #Music
  #texte_nom
  #texte_fichier
  #texte_volume
  #barre_volume
  #cadre
  #bouton_jouer
  #bouton_stop
  #bouton_charger
EndEnumeration

InitMovie() 
Global Fichier.s 
; ** Procedures  

Procedure Charger_mp3();*** Chargement d'un fichier mp3 ***
  Fichier.s= OpenFileRequester("Charger","","mp3 fichier (*.mp3)|*.mp3",0)
  If Fichier.s  <> ""
    SetGadgetText(#texte_fichier,GetFilePart(Fichier.s))
    LoadMovie(#Music,Fichier.s)
  EndIf
EndProcedure
Procedure lecture(); *** Lecture du fichier mp3***
  If Fichier.s <> ""
    PlayMovie(#Music,#Null)
  EndIf
EndProcedure

Procedure Arreter();*** On arrete stop la musique 
  If Fichier.s <> ""
    StopMovie(#Music)
  EndIf
EndProcedure

Procedure Volume(); *** On augmente ou diminue le son 
  If Fichier.s <> ""
    Volume.l = GetGadgetState(#barre_volume)
     MovieAudio(#Music,Volume,Balance)
  EndIf
  
EndProcedure

;**Creation de la fenetre 
If OpenWindow(#Fenetre_music,0,0,250,170,"Mini mp3",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
  TextGadget(#texte_nom,20,10,150,20,"Titre du mp3 : ")
  TextGadget(#texte_fichier,20,30,210,20,"",#PB_Text_Border)
  TextGadget(#texte_volume,20,60,150,20,"Volume :")
  TrackBarGadget(#barre_volume,20,80,210,20,0,100)
  SetGadgetState(#barre_volume,100)
  Frame3DGadget(#cadre,10,110,230,50,"")
  ButtonGadget(#bouton_jouer,40,130,50,20,"Jouer")
  ButtonGadget(#bouton_stop,100,130,50,20,"Stop")
  ButtonGadget(#bouton_charger,160,130,50,20,"Charger")
  
  EndIf




; ** Boucle du programme** 

Repeat 
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #barre_volume : Volume()
          Case #bouton_charger :Charger_mp3()   
        Case #bouton_jouer : lecture() 
        Case #bouton_stop : Arreter()
          EndSelect
      Case #PB_Event_CloseWindow
      fermer =#True
      
  EndSelect
Until fermer
End
Jbernard13
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

A noter qu'il faut que Windows possède les codecs MP3 pour pouvoir lire.
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Message par SpaceMan »

et ben dit donc, jbernard tu progresses vachement vite :lol: ... c'est Fred qui aura peur à cette allure :P
Du courage
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

merci de tes compliments
je lis la doc , les exemples , et je bidouille par mal pour ecrire mon propre programme ensuite .
Jbernard13
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Message par Stefou »

:D Trop fort ce Jb, en 5 ans tu en fais des progrès! :D
samy97
Messages : 14
Inscription : ven. 09/janv./2009 16:43

Message par samy97 »

mon code est un peu + bas j'ai voulu libérer un peu de place :P
Dernière modification par samy97 le dim. 22/mars/2009 13:57, modifié 4 fois.
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Message par Stefou »

Stefou a écrit:
Trop fort ce Jb, en 5 ans tu en fais des progrès!

moi ca fait environ 2 mois que je m'y suis mis et voila mon lecteur mp3
fait en 2 semaine (environ 2 heures par jour)
Hooo t'es dur Samy ! :D
samy97
Messages : 14
Inscription : ven. 09/janv./2009 16:43

Message par samy97 »

biensur que je sui dur XD
mé je sui sur qu'il peu faire mieu!!! son petit programme recemble a la premiere version du mien en un peu mieu !!! XP

a au fet g un truc pour toi Jbernard:
4 radios internet a rajouter a ton lecteur mp3

Code : Tout sélectionner

Enumeration
#radio
#nom_radio
#radio1
#fun_rad
#virjin
#nostalgie
#fenetre
EndEnumeration
If OpenWindow(#fenetre, 0, 0, 140, 130, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) 
CreateGadgetList(WindowID(#fenetre))
StringGadget(#nom_radio, 10,10,120,20,"nom de la radio")
ButtonGadget(#radio1,    10,40,120,20,"nrj")
ButtonGadget(#fun_rad,   10,60,120,20,"fun")
ButtonGadget(#virjin,    10,80,120,20,"virjine")
ButtonGadget(#nostalgie, 10,100,120,20,"nostalgie")
WebGadget(#radio, 0, 0, 1,1,radio$) 
EndIf 

nrj$ = "http://player.nrj.fr/V4/nrj/nrj_launch_V3.html"
fun_radio$ = "http://radiozed.com/radio.php?r=10"
virgin_radio$ = "http://radiozed.com/radio.php?r=17"
nostalgie$ = "http://radiozed.com/radio.php?r=9"

Repeat 
 event=WaitWindowEvent()
  If event =#PB_Event_Gadget
   clicgadget = EventGadget()
  Else
   clicgadget=0
  EndIf 
 
  If clicgadget = #radio1
   SetGadgetText(#nom_radio,"NRJ musique")
   SetGadgetText(#radio,nrj$)
  EndIf

  If clicgadget = #fun_rad
   SetGadgetText(#nom_radio,"fun radio")
   SetGadgetText(#radio,fun_radio$)
  EndIf
  
  If clicgadget = #virjin
   SetGadgetText(#nom_radio,"virjine radio")
   SetGadgetText(#radio,virgin_radio$)
  EndIf
  
  If clicgadget = #nostalgie
   SetGadgetText(#nom_radio,"nostalgie")
   SetGadgetText(#radio,nostalgie$)
  EndIf
 
  
Until event = #PB_Event_CloseWindow
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Chacun avance à son rythme, à sa manière, et avec le potentiel qui lui est permis.

Alors c'est bien Samy97, excepté une petite faute ligne 304, c'est du bon travail.

@jBernard13

Bon départ! Trouve les moyens de repérer ton code. Comme dit Dobro: il faut trouver sa technique pour pouvoir relire son code quand on l'a rangé quelques temps et que l'on souhaite le développer.

Ollivier
samy97
Messages : 14
Inscription : ven. 09/janv./2009 16:43

Message par samy97 »

Ollivier a écrit :
Alors c'est bien Samy97, excepté une petite faute ligne 304, c'est du bon travail.
merci c'est réparé

et pour jbernard je trouve qu'il travaille plutôt bien car son code n'est pas un vrais bazar comme le mien et les procédures, je ne sais pas les utiliser :oops:
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Message par Stefou »

Ben chez moi, cela plante ???

Mais désolé je n'ai pas trop le temps de regardé pourquoi...

a+ et bon courage :?
samy97
Messages : 14
Inscription : ven. 09/janv./2009 16:43

Message par samy97 »

Stefou a écrit :Ben chez moi, cela plante ???

Mais désolé je n'ai pas trop le temps de regardé pourquoi...

a+ et bon courage :?
as tu la version 4,2 de pure basic???
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Petite parenthèse pour Samy97,

En PureBASIC, il y a deux sortes de modules: les procedures et les macro.

Dans les deux cas, la cause de leur utilisation est la feignasserie du programmeur: Ecrire en une ligne ce qui prend plusieurs lignes pour s'exécuter.

Les différences entre macros et procédures:
La procédure peut être récursive (elle peut s'appeler elle-même) a contrario de la macro (une récursion amène à un plantage de la compilation) (Attention, un mauvais contrôle de la récursion au sein d'une procédure amène aussi à un plantage - STACK OVERFLOW = Pile défoncée - )

Code : Tout sélectionner

;Je suis un programme qui plante : Récursion infinie
Macro Plantage()
Plantage()
EndMacro
Plantage()

Code : Tout sélectionner

; Je suis un programme qui plante : Stack overflow
Procedure Plantage()
Plantage()
EndProcedure
Plantage()

Code : Tout sélectionner

;Je suis un programme à récursion contrôlée (qui ne plante pas)
Procedure Correct(Variable)
   Debug Variable
   Variable - 1
   If Variable < 0: Variable = 0: EndIf
   If Variable
      Correct(Variable)
   EndIf
EndProcedure

Correct(5)
La macro c'est la sollicitation du compilateur pour écrire des lignes à ta place.

Code : Tout sélectionner

; Je suis un programme de feignasse
Macro MR(X)
MessageRequester("Message", X)
EndMacro

MR("Yes!")
MR("Youpi!")
MR("En 4 lignes assez brèves...")
MR("...Je sollicite le compilateur pour réécrire la longue instruction «MessageRequester» à ma place!")
L'exécution d'une procédure est plus lente que l'exécution d'une macro.

Code : Tout sélectionner

Procedure Proc(Entree)
Protected Result
Entree + 1
ProcedureReturn Result
EndProcedure
Macro Macr(Entree)
Entree + 1
EndMacro

T2 = ElapsedMilliseconds()
For i = 0 To 1 << 22
Pif = Proc(Pif)
Next
T1 = ElapsedMilliseconds()
For i = 0 To 1 << 22
Pif = Macr(Pif)
Next
T0 = ElapsedMilliseconds()
MessageRequester("", "Durée d'exécution avec une procédure : " + Str(T1 - T2) + "ms" + Chr(10) + "Durée d'exécution avec une macro : " + Str(T0 - T1) + "ms")
La procédure économise de la place en code machine dans l'EXE ou le DLL final.
L'appel d'une procédure peut être controlée par l'utilisateur si le programmeur a usé d'une technique spécifique pour parvenir à ce procédé.

Code : Tout sélectionner

Structure ProcInfo ; Pour chaque procédure de calcul, on a:
   *Adr   ; Adresse du code 
   Name.S ; Nom de l'opération
   Char.S ; Signe de l'opération
EndStructure

Dim Proc.ProcInfo(9)

Macro QT
"
EndMacro
; Attention /!\ >> Ici, la Macro est une feignasserie de ma
; part ne souhaitant réécrire chaque procédure pour chacune
; des quatres opérations...
Macro Calc(n, Nom, Op) 
Procedure Nom(A.F, B.F)
   Static Value.F
   Protected Result
   Value = A Op B
   Result = @Value  
;   Result = 0 ; /!\ Ici, c'est une ligne qui, une fois
               ; décommentée, fait planter le programme.
               ; Elle montre l'imprécision d'un déboguage
               ; dans une macro
   ProcedureReturn Result
EndProcedure
Proc(n)\Adr = @Nom()
Proc(n)\Name = QT#Nom"
Proc(n)\Char = QT#Op"
EndMacro

   Calc(0, Addition, +)
   Calc(1, Soustraction, -)
   Calc(2, Multiplication, *)
   Calc(3, Division, /)
   
   Repeat
      Mess.S = ""
      For i= 0 To 3
         Mess + Str(i + 1) + " = " + Proc(i)\Name + Chr(13)
      Next
      Mess + "0 = Quitter"
      MessageRequester("Choisissez une opération", Mess)
      Saisie = Val(InputRequester("N°", "Numéro de l'opération :", "0") )
      If Saisie > 0
         Ope = Saisie - 1
         Titre.S = Proc(Ope)\Name + " de A " + Proc(Ope)\Char + " B"
         A.F = Val(InputRequester(Titre, "A = ?", "0") )
         B.F = Val(InputRequester(Titre, "B = ?", "0") )
         MessageRequester("Résultat", StrF(PeekF(CallFunctionFast(Proc(Ope)\Adr, A, B) ) ) )
      Else
         Break
      EndIf
   ForEver
   

Une erreur dans une macro n'est pas toujours bien localisée.
>> Enlever le signe ; de commentaire en ligne 21 du code précédent pour provoquer un plantage et remarquer la difficulté à localiser l'erreur dans une macro...
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Message par Stefou »

Stefou a écrit:
Ben chez moi, cela plante ???

Mais désolé je n'ai pas trop le temps de regardé pourquoi...

a+ et bon courage

as tu la version 4,2 de pure basic???

Avec la 4.2 et la 4.3
samy97
Messages : 14
Inscription : ven. 09/janv./2009 16:43

Message par samy97 »

bonjour c'est encore moi
En fait je sait pas vraiment comment poser ma question...
J'ai modifier radicalement la structure de mon programme initiale (merci olivier pour tes explications ) maintenant il est bourré de procédures ...
Mon problème est que j'essaye de fair en sorte que lorsque ma vidéo courante est fini il lance la suivante et c'est la que je plante j'ai deja essayer un paquet de truque mais ça veux pas marcher snif ...
Est ce que quelqu'un aurai la gentillesse de me donner une idée de solution?

voila mon code
je rapele que le débogueur doit IMPERATIVEMENT ETRE DESACTIVE :!:

Code : Tout sélectionner

Enumeration
#fenetreLecture
#listeLecture
#movie
#Stringgadget
#buttonLoad
#buttonPlay
#buttonStop 
#buttonPause
#buttonResume
#on_tt
#add_new
#volume
#liste
#fenetre_listeLecture
#liste2
#plein_ecran
#menu
#kiter
#pleinEcran
#movieEcran
#pose
#resume
#movie3
#web
#web2
#web3
#precedent
#suivant
#url
#go
#a_propo
#info
#radio
#bord
#fin_web
EndEnumeration

Procedure.s add()
 MovieName$ = OpenFileRequester("Choisir le media", "", "fichiers audio et vidéo|*.mp3;*.wma;*.avi;*.mpg;*.wav;*.jpg;*.gif;*.wmv", 0,#PB_Requester_MultiSelection)
  If MovieName$
  DisableGadget(#buttonPlay,0)
   While MovieName$
    AddGadgetItem(#liste,-1,MovieName$)
    MovieName$ = NextSelectedFileName()
   Wend
    SetGadgetState(#liste,list)
    nom_movi$ = GetFilePart(MovieName$)
    GetGadgetState(#liste)
  EndIf
EndProcedure

Procedure.s play()
SetGadgetText(#Stringgadget, GetFilePart(GetGadgetText(#liste)))
DisableGadget(#volume,0)
  OpenWindow(#pleinEcran,0,0,0,0,nom_movi$,#PB_Window_Maximize|#PB_Window_BorderLess)
   HideWindow(#pleinEcran,1)
     CreatePopupMenu(#menu)
      MenuTitle("")
       MenuItem(#kiter,"")
       MenuItem(#pose,"")
       MenuItem(#resume,"")
        AddKeyboardShortcut(#pleinEcran,#PB_Shortcut_Tab,#resume)
        AddKeyboardShortcut(#pleinEcran,#PB_Shortcut_Space,#pose)
        AddKeyboardShortcut(#pleinEcran,#PB_Shortcut_Escape,#kiter)
        LoadMovie(#movie,GetGadgetText(#liste)) And PlayMovie(#movie,WindowID(#fenetreLecture))
        LoadMovie(#movieEcran,GetGadgetText(#liste)) And PlayMovie(#movieEcran,WindowID(#pleinEcran))
     MovieAudio(#movieEcran,0,0)
  If MovieWidth(#movie)>1 And MovieHeight(#movie)>1
   HideGadget(#liste,1)
   ResizeMovie(#movie,5,60,630,335)
   ResizeMovie(#movieEcran,0,0,WindowWidth(#pleinEcran),WindowHeight(#pleinEcran))
  EndIf           
  If MovieWidth(#movie)<1 And MovieHeight(#movie)<1
   LoadMovie(#movie3,"visu.gif") And PlayMovie(#movie3,WindowID(#fenetreLecture))
   HideGadget(#liste,1)
   ResizeMovie(#movie3,5,60,630,335)
  EndIf
 DisableGadget(#buttonPlay,1)
 DisableGadget(#buttonStop,0)
 DisableGadget(#buttonPause,0)
 DisableGadget(#plein_ecran,0)
If MovieWidth(#movie)<1 And MovieHeight(#movie)<1
DisableGadget(#plein_ecran,1)
qqch = 1
EndIf
EndProcedure

Procedure.s stop() 
StopMovie(#movie) 
FreeMovie(#movie)
HideGadget(#liste,0)
StopMovie(#movieEcran)
FreeMovie(#movieEcran)
 If MovieWidth(#movie)<1 And MovieHeight(#movie)<1
  StopMovie(#movie3)
  FreeMovie(#movie3)
EndIf
DisableGadget(#buttonPlay,0)
DisableGadget(#buttonStop,1)
DisableGadget(#buttonPause,1)
DisableGadget(#plein_ecran,1)
EndProcedure

Procedure.s pause()
PauseMovie(#movie)
DisableGadget(#buttonPlay,1)
DisableGadget(#buttonStop,1)
DisableGadget(#buttonResume,0)
DisableGadget(#buttonPause,1)
PauseMovie(#movieEcran)
If MovieWidth(#movie)<1 And MovieHeight(#movie)<1
PauseMovie(#movie3)
EndIf
EndProcedure

Procedure.s resume()
ResumeMovie(#movie)
ResumeMovie(#movieEcran)
DisableGadget(#buttonStop,0)
DisableGadget(#buttonPlay,1)
DisableGadget(#buttonPause,0)
DisableGadget(#buttonResume,1)
If MovieWidth(#movie)<1 And MovieHeight(#movie)<1
ResumeMovie(#movie3)
EndIf
EndProcedure

Procedure.s plein_ecran()
 Text$ = "bouton Echap pour quitter"+#LF$
 Text$ + "bouton Espace pour metre en pause"+#LF$
 Text$ + "bouton Tab pour reprendre en pause"+#LF$
 HideWindow(#pleinEcran,0)
 StickyWindow(#pleinEcran,1)
 MessageRequester("Informations",Text$,#PB_MessageRequester_Ok)
EndProcedure

Procedure.s liste()
liste = GetGadgetState(#listeLecture)
    If liste = 1
     OpenWindow(#fenetre_listeLecture,0,0,0,0,"liste de lecture",#PB_Window_ScreenCentered|#PB_Window_BorderLess)
     For L= 0 To 30
       Delay(20)
        ResizeWindow(#fenetre_listeLecture,#PB_Ignore,#PB_Ignore,large,10)
        large + 10
        SetWindowColor(#fenetre_listeLecture,RGB(100,198,198))
     Next L
     For H= 0 To 40
       Delay(20)
        ResizeWindow(#fenetre_listeLecture,#PB_Ignore,#PB_Ignore,300,haut)
        haut + 10
        SetWindowColor(#fenetre_listeLecture,RGB(100,198,198))
     Next H
       CreateGadgetList(WindowID(#fenetre_listeLecture))
           ListViewGadget(#liste2,10,10,280,380)
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,0)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,1)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,2)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,3)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,4)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,5)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,6)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,7)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,8)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,9)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,10)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,11)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,12)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,13)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,14)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,15)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,16)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,17)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,18)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,19)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,20)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,21)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,22)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,23)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,24)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,25)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,26)))
            AddGadgetItem(#liste2,-1,GetFilePart(GetGadgetItemText(#liste,27)))
    Else
     For H= 0 To 40
       Delay(20)
        ResizeWindow(#fenetre_listeLecture,#PB_Ignore,#PB_Ignore,300,haut)
        HideGadget(#liste2,1)
        haut - 10
        SetWindowColor(#fenetre_listeLecture,RGB(100,198,198))
     Next H
      For L= 0 To 31
       Delay(20)
        ResizeWindow(#fenetre_listeLecture,#PB_Ignore,#PB_Ignore,large,10)
        large - 10
        SetWindowColor(#fenetre_listeLecture,RGB(100,198,198))
      Next L
     CloseWindow(#fenetre_listeLecture)
     large = 0
     haut= 0
    EndIf
EndProcedure

Procedure.s web()
 If OpenWindow(#web2,0,0,780,785,"pure player web",#PB_Window_ScreenCentered|#PB_Window_BorderLess) And CreateGadgetList(WindowID(#web2))
  SetWindowColor(#web2,RGB(100,198,198))
   StringGadget(#url,115,5,550,20,"http://www.google.com")
    WebGadget(#web3,5,30,770,750,"")
    SetGadgetText(#web3,GetGadgetText(#url))
    SetGadgetText(#web3,"http://www.google.com")
    ButtonGadget(#precedent,5,5,50,20,"<-")
    ButtonGadget(#suivant,60,5,50,20,"->") 
    ButtonGadget(#go,670,5,50,20,"=>",#PB_Button_Default)
    ButtonGadget(#fin_web,725,5,50,20,"quitter")
 EndIf
  EndProcedure

Procedure.s a_propo()
 info = GetGadgetState(#a_propo)
 If info = 1
  OpenWindow(#a_propo,10,10,245,110,"a propos de pure player",#PB_Window_WindowCentered|#PB_Window_BorderLess)
  StickyWindow(#a_propo,1)
  SetWindowColor(#a_propo,RGB(100,198,198))
  CreateGadgetList(WindowID(#a_propo))
  EditorGadget(#info,10,10,225,90,#PB_Editor_ReadOnly)
  info$ = "nom du programe : Pure_Player" + #LF$
  info$ + "auteur           : ROUCARD Samuel" + #LF$
  info$ + "crée le          : 3 mars 2009" + #LF$
  info$ + "version          : 3"+#LF$
  info$ + "pour plus d'informations veuillez me contacter :" +#LF$
  info$ + "samy.971@hotmail.fr"
  SetGadgetText(#info,info$)
 EndIf
 If info = 0
 CloseWindow(#a_propo)
 EndIf
EndProcedure



OpenWindow(#fenetreLecture,10,10,640,400,"Pure_Player",#PB_Window_MinimizeGadget|#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 CreateGadgetList(WindowID(#fenetreLecture))
 InitMovie()
 Frame3DGadget(#bord,5,5,630,50,"",#PB_Frame3D_Double)
StringGadget(#Stringgadget          ,10,30,400,20,"Fichier",#PB_String_ReadOnly)
ButtonGadget(#buttonPlay            ,210,10,50,20,"Play")
ButtonGadget(#buttonStop            ,260,10,50,20,"Stop")
ButtonGadget(#buttonPause           ,310,10,50,20,"Pause")
ButtonGadget(#buttonResume          ,360,10,50,20,"Resume")
ButtonGadget(#listeLecture          ,460,10,50,20,"Liste",#PB_Button_Toggle)
ButtonGadget(#add_new               ,510,10,50,20,"Add")
ButtonGadget(#on_tt                 ,510,30,120,20,"Toujours Au Dessus",#PB_Button_Toggle)
ButtonGadget(#radio                 ,560,10,70,20,"Radio Web")
DisableGadget(#buttonStop,1)
DisableGadget(#buttonResume,1)
DisableGadget(#buttonPlay,1)
DisableGadget(#buttonPause,1)
ListViewGadget(#liste               ,5,60,630,335)
volume = TrackBarGadget(#volume,10,10,200,20,0,100)
DisableGadget(#volume,1)
ButtonGadget(#plein_ecran,410,10,50,20,"Ecran")
DisableGadget(#plein_ecran,1)
ButtonGadget(#web                  ,460,30,50,20,"Web")
ButtonGadget(#a_propo,410,30,50,20,"A Propos",#PB_Button_Toggle)
SetWindowColor(#fenetreLecture,RGB(100,198,198))
SetGadgetState(#volume,50)
;
Repeat
 event=WaitWindowEvent()
  If event =#PB_Event_Gadget
   clicgadget = EventGadget()
  Else
   clicgadget=0
  EndIf
     
     volume = GetGadgetState(#volume)
    MovieAudio(#movie,volume,0)

;--------------mon problem-----------------------------------------------------------------
 
 ;If MovieStatus(#movie) = 0
  ;  If IsMovie(#movie)
 ;   FreeMovie(#movie)
 ;   FreeMovie(#movieEcran)
 ;    If MovieWidth(#movie)<1 And MovieHeight(#movie)<1
 ;     FreeMovie(#movie3)
 ;    EndIf
  ;  EndIf
  ;list + 1
;   LoadMovie(#movie,GetGadgetText(#liste)) And PlayMovie(#movie,WindowID(#fenetreLecture))
;   LoadMovie(#movieEcran,GetGadgetText(#liste)) And PlayMovie(#movieEcran,WindowID(#pleinEcran))
; EndIf
;------------------------------------------------------------------------------------------

  If clicgadget = #add_new
   add()
  EndIf
  
  If clicgadget = #buttonPlay
   play()
  EndIf
  
  If clicgadget = #buttonStop
   stop()
  EndIf
  
  If clicgadget = #buttonPause
   pause()
  EndIf
  
  If clicgadget = #buttonResume
   resume()
  EndIf
  
  If clicgadget = #plein_ecran
   plein_ecran()
  EndIf
  
  
  If EventMenu() = #kiter
   HideWindow(#pleinEcran,1)
  EndIf

  If EventMenu() = #pose
   PauseMovie(#movie) 
   PauseMovie(#movieEcran)
  EndIf

  If EventMenu() = #resume
   ResumeMovie(#movie)
   ResumeMovie(#movieEcran)
  EndIf 
  
  If clicgadget = #on_tt
   x = GetGadgetState(#on_tt)
    If x = 1
     StickyWindow(#fenetreLecture,1)
    Else
     StickyWindow(#fenetreLecture,0)  
    EndIf
  EndIf
  
  If clicgadget = #listeLecture
   liste()
  EndIf

  If clicgadget = #a_propo
   a_propo()
  EndIf
  
  If clicgadget = #radio
   RunProgram("radio_web.exe")
  EndIf
  
  If clicgadget = #web
   web()
  EndIf

  If clicgadget = #fin_web
   CloseWindow(#web2)
  EndIf

  If clicgadget = #precedent
   SetGadgetState(#web3,#PB_Web_Back)
   SetGadgetText(#url,GetGadgetText(#web3))
  EndIf

  If clicgadget = #suivant
   SetGadgetState(#web3,#PB_Web_Forward)
   SetGadgetText(#url,GetGadgetText(#web3))
  EndIf

  If clicgadget = #go
   SetGadgetText(#web3,GetGadgetText(#url))
  EndIf
Until event = #PB_Event_CloseWindow 

cordialement
samy97
Répondre