Page 1 sur 1

Sons non initialisés

Publié : mar. 12/janv./2016 11:17
par Micoute
Bonjour à tous,

je souhaite faire un minuteur pour ma bru, mais je n'arrive pas à initialiser les sons malgré que j'aie pu essayer différents formats.

Je souhaiterais aussi, si c'est possible que les sons ne s'interrompent pas tant que l'utilisateur n'a pas intervenu.

J'ai besoin de vos conseils précieux pour pouvoir continuer dans ma tentative échouée et je vous en remercie beaucoup.

Code : Tout sélectionner

;Minuteur 12/01/2016
Enumeration Fenetre
  #Fenetre_Principale
EndEnumeration

Enumeration Gadgets
  #Btn_Demarrer
  #Btn_Arreter
  #Btn_Quitter
  #Cmb_Heure
  #Cmb_Minute
  #Cmb_Seconde
  #Txt_Reglage_Heure
  #Txt_Reglage_Minute
  #Txt_Reglage_Secondes
  #Txt_Compte
  #Txt_Titre
  #Cdr_Reglages
  #Cdr_Commandes
  #Cdr_Resultat
  #Gauge
EndEnumeration

Enumeration Sons
  #Son
EndEnumeration

Define.l Evenement, EvenementFenetre, EvenementGadget, TypeEvenement


If InitSound() = 0 
  MessageRequester("Erreur", "Erreur avec l'initialisation du Son !") 
  End 
EndIf 

LoadSound(#Son, "Coucou.wav")

SoundVolume(#Son, 100) 

OpenWindow(#Fenetre_Principale, 0, 0, 355, 360, "", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
TextGadget(#Txt_Titre, 0, 10, 355, 30, "Minuteur © Micoutesoft 2016", #PB_Text_Center)
ButtonGadget(#Btn_Demarrer, 25, 180, 100, 30, "Demarrer")
ButtonGadget(#Btn_Arreter, 130, 180, 100, 30, "Arreter")
ButtonGadget(#Btn_Quitter, 235, 180, 100, 30, "Quitter")
ComboBoxGadget(#Cmb_Heure, 20, 50, 70, 20)
For i = 0 To 100
  AddGadgetItem(#Cmb_Heure, i, Str(i))
Next
SetGadgetState(#Cmb_Heure,0)
ComboBoxGadget(#Cmb_Minute, 20, 80, 70, 20)
For i = 0 To 59
  AddGadgetItem(#Cmb_Minute, i, Str(i))
Next
SetGadgetState(#Cmb_Minute,0)
ComboBoxGadget(#Cmb_Seconde, 20, 110, 70, 20)
For i = 0 To 59
  AddGadgetItem(#Cmb_Seconde, i, Str(i))
Next
SetGadgetState(#Cmb_Seconde,0)
TextGadget(#Txt_Reglage_Heure, 105, 50, 230, 20, "Veuillez regler l'heure (0 - 100)")
TextGadget(#Txt_Reglage_Minute, 105, 80, 230, 20, "Veuillez regler les minutes (0 - 59)")
TextGadget(#Txt_Reglage_Secondes, 105, 110, 230, 15, "Veuillez regler les secondes (0 - 59)")
TextGadget(#Txt_Compte, 80, 255, 190, 20, "Le minuteur est pret", #PB_Text_Center)
FrameGadget(#Cdr_Reglages, 10, 35, 335, 105, "Reglages", #PB_Frame_Double)
FrameGadget(#Cdr_Commandes, 10, 160, 335, 65, "Commandes", #PB_Frame_Double)
FrameGadget(#Cdr_Resultat, 10, 245, 335, 100, "Resultat", #PB_Frame_Double)
ProgressBarGadget(#Gauge, 25, 290, 300, 20, 0, CompteRebours, #PB_ProgressBar_Smooth)

Couleur = $FADADA

SetWindowColor(#Fenetre_Principale, Couleur)

SetGadgetColor(#Txt_Titre, #PB_Gadget_BackColor, Couleur)
SetGadgetColor(#Txt_Compte, #PB_Gadget_BackColor, Couleur)
SetGadgetColor(#Txt_Reglage_Heure, #PB_Gadget_BackColor, Couleur)
SetGadgetColor(#Txt_Reglage_Minute, #PB_Gadget_BackColor, Couleur)
SetGadgetColor(#Txt_Reglage_Secondes, #PB_Gadget_BackColor, Couleur)


;- Boucle événementielle
Repeat
  Evenement = WaitWindowEvent() 
  
  Select Evenement
      
    Case #PB_Event_Gadget
      EvenementGadget = EventGadget()
      TypeEvenement = EventType()
      If EvenementGadget = #Btn_Demarrer
        HideGadget(#Btn_Demarrer,1)
        HideGadget(#Btn_Arreter,0)
        HideGadget(#Btn_Quitter,1)
        CompteRebours = GetGadgetState(#Cmb_Heure) * 3600 + GetGadgetState(#Cmb_Minute) * 60 + GetGadgetState(#Cmb_Seconde)
        ProgressBarGadget(#Gauge, 25, 270, 300, 20, 0, CompteRebours, #PB_ProgressBar_Smooth)
        
        SendMessage_(GadgetID(#Gauge), #CCM_SETBKCOLOR,0, $FF0000)
        SendMessage_(GadgetID(#Gauge), #WM_USER + 9, 0, $FFFFFF)
        temps = GetTickCount_() + CompteRebours * 1000
        Repeat
          WindowEvent()
          If (temps - GetTickCount_()) / 1000 < CompteRebours
            CompteRebours - 1
            SetGadgetText(#Txt_Compte, FormatDate("%hh Heure(s) %ii Minute(s) %ss", CompteRebours) + " Secondes")
            SetGadgetState(#Gauge, CompteRebours)
            SetWindowText_(WindowID(#Fenetre_Principale), GetGadgetText(#Txt_Compte))
          EndIf
        Until CompteRebours = 0 Or EventGadget() = #Btn_Arreter
        PlaySound(#Son, #PB_Sound_Loop)
        MessageRequester("Minuteur","Le temps est écoulé", #MB_ICONINFORMATION)
        SetGadgetText(#Txt_Compte, "Le minuteur est pret")
        SetGadgetState(#Cmb_Heure, 0)
        SetGadgetState(#Cmb_Minute, 0)
        SetGadgetState(#Cmb_Seconde, 0)
        HideGadget(#Gauge, 1)
        SetGadgetState(#Gauge, 0)
        HideGadget(#Btn_Demarrer, 0)
        HideGadget(#Btn_Quitter, 0)
        SetWindowText_(WindowID(#Fenetre_Principale),"minuteur")
      ElseIf EvenementGadget = #Btn_Quitter
        Quitter = #True
      EndIf
      
    Case #PB_Event_CloseWindow
      Quitter = #True
      EvenementFenetre = EventWindow()
      If EvenementFenetre = #Fenetre_Principale
        CloseWindow(#Fenetre_Principale)
        Break
      EndIf
  EndSelect
Until Quitter = #True
End

Re: Sons non initialisés

Publié : mar. 12/janv./2016 11:54
par Ar-S
Salut Micoute,
Le soucis vient surement de ton wav.
J'ai testé avec le ogg de sirene de PB et ça marche. J'ai dit au soft de stopper le son lorsque l'utilisateur clique sur le OK de MessageRequester()

Je te conseils d'utiliser des son OGG , tu gagneras en place (tu as des convertisseurs gratuit en ligne)

Code : Tout sélectionner

UseOGGSoundDecoder()  ; Utilisation des fichiers ogg


;Minuteur 12/01/2016
Enumeration Fenetre
  #Fenetre_Principale
EndEnumeration

Enumeration Gadgets
  #Btn_Demarrer
  #Btn_Arreter
  #Btn_Quitter
  #Cmb_Heure
  #Cmb_Minute
  #Cmb_Seconde
  #Txt_Reglage_Heure
  #Txt_Reglage_Minute
  #Txt_Reglage_Secondes
  #Txt_Compte
  #Txt_Titre
  #Cdr_Reglages
  #Cdr_Commandes
  #Cdr_Resultat
  #Gauge
EndEnumeration

Enumeration Sons
  #Son
EndEnumeration

Define.l Evenement, EvenementFenetre, EvenementGadget, TypeEvenement


If InitSound() = 0
  MessageRequester("Erreur", "Erreur avec l'initialisation du Son !")
  End
EndIf

;LoadSound(#Son, "Coucou.wav")
; Chargement d'un son depuis un fichier
 LoadSound(#son, #PB_Compiler_Home +"Examples\3D\Data\Siren.ogg")



OpenWindow(#Fenetre_Principale, 0, 0, 355, 360, "", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
TextGadget(#Txt_Titre, 0, 10, 355, 30, "Minuteur © Micoutesoft 2016", #PB_Text_Center)
ButtonGadget(#Btn_Demarrer, 25, 180, 100, 30, "Demarrer")
ButtonGadget(#Btn_Arreter, 130, 180, 100, 30, "Arreter")
ButtonGadget(#Btn_Quitter, 235, 180, 100, 30, "Quitter")
ComboBoxGadget(#Cmb_Heure, 20, 50, 70, 20)
For i = 0 To 100
  AddGadgetItem(#Cmb_Heure, i, Str(i))
Next
SetGadgetState(#Cmb_Heure,0)
ComboBoxGadget(#Cmb_Minute, 20, 80, 70, 20)
For i = 0 To 59
  AddGadgetItem(#Cmb_Minute, i, Str(i))
Next
SetGadgetState(#Cmb_Minute,0)
ComboBoxGadget(#Cmb_Seconde, 20, 110, 70, 20)
For i = 0 To 59
  AddGadgetItem(#Cmb_Seconde, i, Str(i))
Next
SetGadgetState(#Cmb_Seconde,0)
TextGadget(#Txt_Reglage_Heure, 105, 50, 230, 20, "Veuillez regler l'heure (0 - 100)")
TextGadget(#Txt_Reglage_Minute, 105, 80, 230, 20, "Veuillez regler les minutes (0 - 59)")
TextGadget(#Txt_Reglage_Secondes, 105, 110, 230, 15, "Veuillez regler les secondes (0 - 59)")
TextGadget(#Txt_Compte, 80, 255, 190, 20, "Le minuteur est pret", #PB_Text_Center)
FrameGadget(#Cdr_Reglages, 10, 35, 335, 105, "Reglages", #PB_Frame_Double)
FrameGadget(#Cdr_Commandes, 10, 160, 335, 65, "Commandes", #PB_Frame_Double)
FrameGadget(#Cdr_Resultat, 10, 245, 335, 100, "Resultat", #PB_Frame_Double)
ProgressBarGadget(#Gauge, 25, 290, 300, 20, 0, CompteRebours, #PB_ProgressBar_Smooth)

Couleur = $FADADA

SetWindowColor(#Fenetre_Principale, Couleur)

SetGadgetColor(#Txt_Titre, #PB_Gadget_BackColor, Couleur)
SetGadgetColor(#Txt_Compte, #PB_Gadget_BackColor, Couleur)
SetGadgetColor(#Txt_Reglage_Heure, #PB_Gadget_BackColor, Couleur)
SetGadgetColor(#Txt_Reglage_Minute, #PB_Gadget_BackColor, Couleur)
SetGadgetColor(#Txt_Reglage_Secondes, #PB_Gadget_BackColor, Couleur)


;- Boucle événementielle
Repeat
  Evenement = WaitWindowEvent()
 
  Select Evenement
     
    Case #PB_Event_Gadget
      EvenementGadget = EventGadget()
      TypeEvenement = EventType()
      If EvenementGadget = #Btn_Demarrer
        HideGadget(#Btn_Demarrer,1)
        HideGadget(#Btn_Arreter,0)
        HideGadget(#Btn_Quitter,1)
        CompteRebours = GetGadgetState(#Cmb_Heure) * 3600 + GetGadgetState(#Cmb_Minute) * 60 + GetGadgetState(#Cmb_Seconde)
        ProgressBarGadget(#Gauge, 25, 270, 300, 20, 0, CompteRebours, #PB_ProgressBar_Smooth)
       
        SendMessage_(GadgetID(#Gauge), #CCM_SETBKCOLOR,0, $FF0000)
        SendMessage_(GadgetID(#Gauge), #WM_USER + 9, 0, $FFFFFF)
        temps = GetTickCount_() + CompteRebours * 1000
        Repeat
          WindowEvent()
          If (temps - GetTickCount_()) / 1000 < CompteRebours
            CompteRebours - 1
            SetGadgetText(#Txt_Compte, FormatDate("%hh Heure(s) %ii Minute(s) %ss", CompteRebours) + " Secondes")
            SetGadgetState(#Gauge, CompteRebours)
            SetWindowText_(WindowID(#Fenetre_Principale), GetGadgetText(#Txt_Compte))
          EndIf
        Until CompteRebours = 0 Or EventGadget() = #Btn_Arreter
        PlaySound(#Son, #PB_Sound_Loop,80)
        MessageRequester("Minuteur","Le temps est écoulé", #MB_ICONINFORMATION)
        ; STOP LE SON EN SORTIE DU REQUESTER
        StopSound(#son)
        ; ///
        SetGadgetText(#Txt_Compte, "Le minuteur est pret")
        SetGadgetState(#Cmb_Heure, 0)
        SetGadgetState(#Cmb_Minute, 0)
        SetGadgetState(#Cmb_Seconde, 0)
        HideGadget(#Gauge, 1)
        SetGadgetState(#Gauge, 0)
        HideGadget(#Btn_Demarrer, 0)
        HideGadget(#Btn_Quitter, 0)
        SetWindowText_(WindowID(#Fenetre_Principale),"minuteur")
      ElseIf EvenementGadget = #Btn_Quitter
        Quitter = #True
      EndIf
     
    Case #PB_Event_CloseWindow
      Quitter = #True
      EvenementFenetre = EventWindow()
      If EvenementFenetre = #Fenetre_Principale
        CloseWindow(#Fenetre_Principale)
        Break
      EndIf
  EndSelect
Until Quitter = #True
End

Re: Sons non initialisés

Publié : mar. 12/janv./2016 12:06
par venom
Bonjour Micoute,

Peux tu nous donner ton fichier son car chez moi ça fonctionne bien.

La bibliothèque sound est assez capricieuse niveau format audio.

EDIT: arf... doublé par Ar-S :wink:




@++

Re: Sons non initialisés

Publié : mar. 12/janv./2016 12:14
par Micoute
Bonjour venom et merci beaucoup.

Voici l'adresse de mon fichier .wav :
http://www.petit-fichier.fr/2016/01/12/coucou/

Re: Sons non initialisés

Publié : mar. 12/janv./2016 12:27
par venom
ok voici ton son au bon format.

Téléchargement






@++

Re: Sons non initialisés

Publié : mar. 12/janv./2016 12:47
par Micoute
Désolé, mais je peux seulement l'entendre, mais pas le télécharger !

Re: Sons non initialisés

Publié : mar. 12/janv./2016 12:49
par venom
clic droit, enregistrer sous :wink:





@++

Re: Sons non initialisés

Publié : mar. 12/janv./2016 13:17
par Micoute

Re: Sons non initialisés

Publié : mar. 12/janv./2016 16:37
par Ar-S
Tu fais un clic droit sur ce lien : http://venompb.free.fr/Coucou.wav
Enregistrer la cible du lien sous.

Re: Sons non initialisés

Publié : mar. 12/janv./2016 20:04
par Micoute
Merci, c'est fait !