volume du son

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

volume du son

Message par venom »

bonsoir a voous tous je poste ce probleme car je ne trouve pas sur le forum le meme probleme que moi j'ai chercher toute l'apre midi mais je ne trouve pas

mon probleme sa serait de cree une barre qui augmante et baisse le volume du son je pense que c'est avec le fonction

Code : Tout sélectionner

MovieAudio(Volume, Balance) 
mais j'arrive pas a le placer dans mon code a moin que c'est par ce que j'ai la version demo je ne sait pas en tout cas voici mon code pour mieu comprendre :D

Code : Tout sélectionner

If InitMovie() = 0 
MessageRequester("Erreur", "Impossible de lire des vidéos", 0) 
End 
EndIf 

Enumeration 
#Window_0 
EndEnumeration 


Enumeration 
#liste 
#play 
#StopMovie 
#Image 
#PauseMovie 
#AffichageCurseurLecture
EndEnumeration 

Procedure Rafraichir(Valeur.l) 
; valeur correspond à la fréquence de rafraichissement en ms 
Repeat 
Delay(Valeur) 
Position = MovieStatus() 
If Position > 0 
SetGadgetState(#AffichageCurseurLecture, Int(1000 * Position / MovieLength())) 
EndIf 
ForEver 
EndProcedure 

Date$ = FormatDate("%dd/%mm/%yyyy", Date())
Time$ = FormatDate("%hh:%ii:%ss", Date())
MessageRequester("bienvenue a audio player 1.0", "nous sommes le    :  "+Date$+Chr(10)+"il est exactement  :"+Time$, 0)

If OpenWindow(0, 0, 0, 700, 400 , #PB_Window_SystemMenu | #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered , "audio player 1.0") 
If CreateGadgetList(WindowID()) 
 ButtonGadget(#liste, 2, 1, 138, 30, "LISTE ~~")
  ButtonGadget(#play, 140, 1, 140, 30, "LECTURE >") 
  ButtonGadget(#PauseMovie, 280, 1, 140, 30, "PAUSE II", #PB_Button_Toggle ) 
   ButtonGadget(#StopMovie, 420, 1, 140, 30, "STOP #") 
    ButtonGadget(#Image, 560, 1, 140, 30, "VISUALISATION")       
ProgressBarGadget(#AffichageCurseurLecture, 10, 377, 680, 15, 0, 1000, #PB_ProgressBar_Smooth) 

TrackBarGadget(10,677, 60, 20,285,0,100, #PB_TrackBar_Vertical)
   TextGadget    (30, 676,40,200, 20,"son")
    TextGadget    (20, 677,350,200, 20,"son") 
 EndIf 
 EndIf 



Repeat 

Event = WaitWindowEvent() 

If Event = #PB_EventGadget 

Select EventGadgetID() 

Case #liste 
NomFichier$ = OpenFileRequester("Titre", "::{450d8fba-ad25-11d0-98a8-0800361b1103}\", "Fichiers|*.*", 0) 
LoadMovie(1, NomFichier$) 

Case #play 
PlayMovie(1, WindowID())
ResizeMovie(0, 50, MovieWidth(), MovieHeight())
ThreadID = CreateThread(@Rafraichir(), 250)

Case #StopMovie 
StopMovie() 
KillThread(ThreadID) ; 

Case #Image
NomFichier$ = OpenFileRequester("Titre", "::{450d8fba-ad25-11d0-98a8-0800361b1103}\", "Fichiers|*.*", 0) 
LoadImage(1, NomFichier$) 

Case #PauseMovie 
If GetGadgetState(#PauseMovie) = 1 
PauseMovie() 
Else 
ResumeMovie() 
EndIf 

EndSelect 
EndIf 

Until Event = #PB_EventCloseWindow 

End
donc voila .
je vous remercie d'avance pour vos reponse :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Code : Tout sélectionner

 If InitMovie() = 0
    MessageRequester("Erreur", "Impossible de lire des vidéos", 0)
    End
EndIf

Enumeration
    #Window_0
EndEnumeration


Enumeration
    #liste
    #play
    #StopMovie
    #Image
    #PauseMovie
    #AffichageCurseurLecture
    #volume
EndEnumeration

Procedure Rafraichir(Valeur.l)
    ; valeur correspond à la fréquence de rafraichissement en ms
    Repeat
        Delay(Valeur)
        Position = MovieStatus()
        If Position > 0
            SetGadgetState(#AffichageCurseurLecture, Int(1000 * Position / MovieLength()))
        EndIf
    ForEver
EndProcedure

Date$ = FormatDate("%dd/%mm/%yyyy", Date())
Time$ = FormatDate("%hh:%ii:%ss", Date())
MessageRequester("bienvenue a audio player 1.0", "nous sommes le    :  "+Date$+Chr(10)+"il est exactement  :"+Time$, 0)

If OpenWindow(0, 0, 0, 700, 400 , #PB_Window_SystemMenu | #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered , "audio player 1.0")
    If CreateGadgetList(WindowID())
        ButtonGadget(#liste, 2, 1, 138, 30, "LISTE ~~")
        ButtonGadget(#play, 140, 1, 140, 30, "LECTURE >")
        ButtonGadget(#PauseMovie, 280, 1, 140, 30, "PAUSE II", #PB_Button_Toggle )
        ButtonGadget(#StopMovie, 420, 1, 140, 30, "STOP #")
        ButtonGadget(#Image, 560, 1, 140, 30, "VISUALISATION")       
        ProgressBarGadget(#AffichageCurseurLecture, 10, 377, 680, 15, 0, 100, #PB_ProgressBar_Smooth)
        
        TrackBarGadget(#volume,677, 60, 20,285,0,100, #PB_TrackBar_Vertical)
        TextGadget    (30, 676,40,200, 20,"son")
        TextGadget    (20, 677,350,200, 20,"son")
    EndIf
EndIf
SetGadgetState(#volume, 50) :volume=50 ; initialise le son a 50


Repeat
    
    
    Event = WaitWindowEvent()
    
    
    
    
    If Event = #PB_EventGadget
        
        
        
        Select EventGadgetID()
            
            Case #volume
                volume = GetGadgetState(#volume)
                MovieAudio(volume, Balance) 
                Debug volume
                
            Case #liste
                NomFichier$ = OpenFileRequester("Titre", "::{450d8fba-ad25-11d0-98a8-0800361b1103}\", "Fichiers|*.*", 0)
                LoadMovie(1, NomFichier$)
                
            Case #play
                PlayMovie(1, WindowID())
                ResizeMovie(0, 50, MovieWidth(), MovieHeight())
                ThreadID = CreateThread(@Rafraichir(), 250)
                
            Case #StopMovie
                StopMovie()
                KillThread(ThreadID) ;
                
            Case #Image
                NomFichier$ = OpenFileRequester("Titre", "::{450d8fba-ad25-11d0-98a8-0800361b1103}\", "Fichiers|*.*", 0)
                LoadImage(1, NomFichier$)
                
            Case #PauseMovie
                If GetGadgetState(#PauseMovie) = 1
                    PauseMovie()
                Else
                    ResumeMovie()
                EndIf
                
        EndSelect
    EndIf
    
Until Event = #PB_EventCloseWindow

End
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Hey Dobro, t'aurais pu corriger les bugs, t'avais plus de papier ou quoi!


:lol:
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

lol nico :D mais tu sait c'est deja bien que dobro ma fait la solution pour les bug je chercherer moi meme :roll: t'inquiette pas merci dobro
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

j'ai un truk de bizzard je le demande au lieu de faire un nouveau poste j'ai voulu faire du button visualisation un button repeat donc j'ai fait pour que le button marche avec la fonction

Code : Tout sélectionner

#PB_Button_Toggle
histoire que tant que le boutton reste enfoncer sa repeat la chanson vous voyer quoi 8O :D
donc j'ai utiliser la fonction

Code : Tout sélectionner

Repeat
  ...
Until <expression> [ou Forever]
car je pense que c'est celle la :D

donc j'ai rediger sur mon code un truk de ce genre la

Code : Tout sélectionner

a=0
  Repeat 
    a=a+1
  Until a>100 
comme c'est ecrit dans f1 mais le probleme c'est que j'ai bo appuyer sur le button repeat sa na fonctionne pas donc voici mon nouveau code avec le button de changer pourtant j'eesye de suivre le fichier d'aide a la lettre mais j'y arrive jamer :mad: sa menerve en faite on direr que j'arrive pas a comprendre le fichier d'aide qui pourtant et tres bien detailler :oops: je suis encore desoler d'abuser de votre temps donc voici mon code

Code : Tout sélectionner

 If InitMovie() = 0 
    MessageRequester("Erreur", "Impossible de lire des vidéos", 0) 
    End 
EndIf 

Enumeration 
    #Window_0 
EndEnumeration 


Enumeration 
    #liste 
    #play 
    #StopMovie  
    #PauseMovie 
    #AffichageCurseurLecture 
    #volume
    #repeat 
EndEnumeration 

Procedure Rafraichir(Valeur.l) 
 
    Repeat 
        Delay(Valeur) 
        Position = MovieStatus() 
        If Position > 0 
            SetGadgetState(#AffichageCurseurLecture, Int(1000 * Position / MovieLength())) 
        EndIf 
    ForEver 
EndProcedure 

Date$ = FormatDate("%dd/%mm/%yyyy", Date()) 
Time$ = FormatDate("%hh:%ii:%ss", Date()) 
MessageRequester("bienvenue a audio player 1.0", "nous sommes le    :  "+Date$+Chr(10)+"il est exactement  :"+Time$, 0) 

If OpenWindow(0, 0, 0, 700, 400 , #PB_Window_SystemMenu | #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered , "audio player 1.0") 
    If CreateGadgetList(WindowID()) 
        ButtonGadget(#liste, 2, 1, 138, 30, "LISTE ~~") 
        ButtonGadget(#play, 140, 1, 140, 30, "LECTURE >") 
        ButtonGadget(#PauseMovie, 280, 1, 140, 30, "PAUSE II", #PB_Button_Toggle) 
        ButtonGadget(#StopMovie, 420, 1, 140, 30, "STOP #") 
        ButtonGadget(#repeat, 560, 1, 140, 30, "repeat", #PB_Button_Toggle)        
        ProgressBarGadget(#AffichageCurseurLecture, 10, 377, 680, 15, 0, 1000, #PB_ProgressBar_Smooth) 
        
        TrackBarGadget(#volume,677, 60, 20,285,0,100, #PB_TrackBar_Vertical) 
        TextGadget    (30, 676,40,200, 20,"son") 
        TextGadget    (20, 677,350,200, 20,"son") 
    EndIf 
EndIf 
SetGadgetState(#volume, 50) :volume=50

Repeat 
        
    Event = WaitWindowEvent()   
    
    If Event = #PB_EventGadget         
        
        Select EventGadgetID()
        
        Case#repeat 
            a=0
            Repeat 
            a=a+1
            Until a>100 
            
            Case #volume 
                volume = GetGadgetState(#volume) 
                MovieAudio(volume, Balance)    
                
            Case #liste 
                NomFichier$ = OpenFileRequester("Titre", "::{450d8fba-ad25-11d0-98a8-0800361b1103}\", "Fichiers|*.*", 0) 
                LoadMovie(1, NomFichier$) 
                
            Case #play 
                PlayMovie(1, WindowID()) 
                ResizeMovie(0, 50, MovieWidth(), MovieHeight()) 
                ThreadID = CreateThread(@Rafraichir(), 250)
           
            Case #StopMovie 
                StopMovie() 
                KillThread(ThreadID) 
                            
            Case #PauseMovie 
                If GetGadgetState(#PauseMovie) = 1 
                    PauseMovie() 
                Else 
                    ResumeMovie() 
                EndIf    
                               
        EndSelect 
    EndIf 
    
Until Event = #PB_EventCloseWindow 

End
dite moi ou sa va pas j'ai essayer de prendre exemple sur les autres button :? je ne comprend pas :cry: merci beaucoup
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

histoire que tant que le boutton reste enfoncer sa repeat la chanson vous voyer quoi Shocked Very Happy

ben non je comprend pas ce que tu veut faire !!

qu'une fois que la chanson ou le film est terminé ,il recommence ?? 8O


Hey Dobro, t'aurais pu corriger les bugs, t'avais plus de papier ou quoi!
:lol:
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

bin oui c'est sa que je veut faire mais sa marcherer en appuyant qu'une foi sur le button je sait pas moi si sa fonctionne comme sa bin on fait comme sa mais c'est bien avec se que j'ai dit qu'on cree un button repeat je ne sait meme pas :(
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

faut utiliser un "drapeau" !!!!


ben c'est quoi un drapeau ?? c'est pour la levée des couleurs ??

ben non pas dans ce cas la !!

un drapeau en informatique (on dit aussi un Flag) , c'est une variable qui va servir temporairement a retenir qu'un evenement c'est produit !!
tu nomme la variable en question comme tu veux, mais vaut mieux lui donner un nom explicite pour un code plus clair !!
tu peut lui donner comme nom "flag_repetition" ou ce que tu veux !!

bref tu met ce flag (drapeau) egale a 1 si le gars( ou la fille) a appuyé sur
son bouton (celui du soft !!)
puis plus loin dans le listing tu test si le flag=1 , si c'est le cas tu regarde si le film est fini avec "Resultat = MovieStatus() "

si il est fini tu le rejoue soit en "sautant" comme un sauvage dans les lignes

Code : Tout sélectionner

Case #play
                PlayMovie(1, WindowID())
                ResizeMovie(0, 50, MovieWidth(), MovieHeight())
                ThreadID = CreateThread(@Rafraichir(), 250) 


soit en recreant juste PlayMovie(1, WindowID())


voila la voie a suivre mon fils !! je vous pardonne !! amen ! :D
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

merci dobro mais desol j'ai pas tres bien comprie ton histoire de drapo desol de tavoir fait dire un truk de fou que je ne comprend pas :( :oops: si tu a bien comprie moi je voudrait faire un boutton qui re lance la musique a la fin de celle ci tu voie pe etre mieu mais si tu ma donner la solution dans le message du dessu desol je ne comprend pas j'ai bo le relire mais je voie pas 8O ou peut etre la solution merci
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

tu as besoin de savoir si l'utilisateur a enclenché le bouton de repetition !

donc tu te sert d'un flag (drapeau) (une variable) pour mettre un chiffre dedans lorsque le bouton aura ete enfoncé par l'utilisateur
bref un flag c'est comme un noeud a ton mouchoir pour te souvenir de quelque chose !!

lorsque ce flag sera egale a 1 cela voudra implicitement dire que l'utilisateur a appuyé sur le bouton de repetition !!

donc en resumé tu a une boucle principale qui tourne
a un moment l'utilisateur va enclencher le bouton de repetition ce qui aura pour effet de mettre une variable = 1
plus loin dans ta boucle (ou au debut peut importe , mais dans la boucle principale ) tu surveille si la variable en question (le flag) est egale a 1

et si et seulement si c'est le cas, alors tu relance la video , seulement si celle ci est terminée bien sur !! tu verifie donc si elle est terminé avec "Resultat = MovieStatus() "

et si elle est terminé tu relance la lecture soit en simulant l'appuis sur la touche lecture (en sautant dans le code du bouton de lecture avec un goto)
soit tu te cree une section suplementaire contenant la fonction PlayMovie(1, WindowID())


en esperant avoir ete plus clair !!

il faut absolument que tu comprenne les "flag" , il sont utilisé partout !!

:D
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

...et si elle est terminé tu relance la lecture soit en simulant l'appuis sur la touche lecture (en sautant dans le code du bouton de lecture avec un goto)
soit tu te cree une section suplementaire contenant la fonction PlayMovie(1, WindowID())
Un GOTO, quelle horreur :lol:
C'est la programmation à l'ancienne qui reprend le dessus! :wink:

C'est aussi simple de faire un test dans la boucle,

Code : Tout sélectionner

If Flag = 1
  PlayMovie
Endif
et de mettre ton flag à 1 avec le bouton
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

je vais essayer de comprendre mais bon c'est la 1er foi que je programme sa fait que 3 moi que je fait ce projet :oops:
8O et oui sa avance pas vite chez moi en 3 mois j'ai fait que sa :roll: mais bon

pour ta solution chris si je met

Code : Tout sélectionner

            Case #play
                If Flag =1 
                PlayMovie(1, WindowID()) 
                ResizeMovie(0, 50, MovieWidth(), MovieHeight())  
                ThreadID = CreateThread(@Rafraichir(), 250)
sa me met une erreur a

Code : Tout sélectionner

Case#StopMovie
sa met met sa
[/quote]'case' without 'select'
et sa va pas :( je vais relire son systeme de flag a dobro et voir quoi 8O :D merci quand memem les gars
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Tiens, voilà un exemple.

Code : Tout sélectionner

;/Constantes Window
Enumeration
  #Window_0
EndEnumeration

;/Constantes Gadget
Enumeration
  #Btn_Play
  #Btn_Stop
  #Btn_Load
EndEnumeration

;/ Initialisation de DirectX
If InitMovie() = 0
  MessageRequester("Erreur DirectX","Impossible d'initialiser DirectX"+Chr(10)+"Vérifiez votre version")
  End
EndIf

;/ Ouverture de la fenêtre
If OpenWindow(#Window_0, 300, 300, 300, 200, #PB_Window_SystemMenu, "Fenêtre 1",0)
  If CreateGadgetList(WindowID(#Window_0))
    ButtonGadget(#Btn_Load, 10, 10, 100, 25, "Charger")
    ButtonGadget(#Btn_Play, 10, 40, 100, 25, "Lire")
    ButtonGadget(#Btn_Stop, 10, 70, 100, 25, "Stop")
  EndIf
  
  ;/ Creation d'un timer (Version enregistrée de PureBasic seulement)
  SetTimer_(WindowID(#Window_0),1,100,0)
  Repeat
    Select WaitWindowEvent()
      
      ;/ Chaque fois que le timer arrive à 100, on vérifie si le flag est à 1
      ;/ et si la vidéo n'est pas stoppée.
      ;/ Si elle est stoppée, on la relance automatiquement
      Case #WM_TIMER
        If Flag_Lecture = 1 And MovieStatus() = 0
          PlayMovie(0,WindowID(#Window_0))
        ElseIf Flag_Lecture = 0
          ;/ Si le flag est à 0, on arrête la lecture, et on remet le pointeur de
          ;/ lecture au début du film. 
          StopMovie()
          MovieSeek(0)
        EndIf
        
        
      Case #PB_EventGadget
        Select EventGadgetID()
          
          ;/ On charge le film
          Case #Btn_Load
            Fichier$ = OpenFileRequester("Charger un fichier","","Films vidéo|*.wmv;*.avi",0)
            If Fichier$
              Load = LoadMovie(0,Fichier$)
            EndIf
            
            ;/ Si le film a bien été chargé, on redimensionne la fenêtre, et on
            ;/ déplace la vidéo après les boutons. On met le flag à 1
          Case #Btn_Play
            If Load
              ResizeWindow(MovieWidth()+120, MovieHeight())
              ResizeMovie(120,0,MovieWidth(),MovieHeight())
              Flag_Lecture = 1
            EndIf
            
            ;/ On met le flag à 0 pour arrêter le film
          Case #Btn_Stop
            Flag_Lecture = 0
            
        EndSelect
        
      Case #PB_EventCloseWindow : quit = 1
    EndSelect
  Until quit = 1
  End
EndIf
Répondre