IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Comment utiliser un son


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Comment utiliser un son
    Bonjour,

    Je souhaiterai créer un petit programme me permettant de lire à la suite plusieurs sons (.wav ou .og ou .mp3...).
    C'est à dire:
    son1.ogg puis lorsque celui-ci est fini son2.ogg...

    J'ai trouvé plusieurs outils:

    *Avec wxPython il y a wxSound pour les sons .wav. J'arrive à lancer le premier son et éventuellement avec celui-ci à faire une boucle, mais je en parviens pas de manière simple. Une solution serait de boucler le lancement d'une fonction en s'assurant que celle-ci est correctement achevée (ça je sais pas faire) et à chaque relancement de la dite fonction changer le tritre à jouer...
    *Avec Pygame, j'arrive à lancer deux son l'un à la suite de l'autre, mais pas plus, alors que mon projet devra en lancer une bonne centaine...
    *Il existe Pymedia mais pas pour Python2.5 (celui que j'utilise évidemment...)
    *J'ai trouvé SFML, mais pas moyen de le faire fonctionner (voir l'un de mes messages)
    *Toujours pour wxPython il y a aussi SDL. Là je vais commencer à étudier ceci.


    Le but de mon message est de savoir si quelqu'un peut m'aider ou me donner l'adresse d'une librairie simple et qui marche...

    D'avance merci

  2. #2
    Membre averti Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Points : 344
    Points
    344
    Par défaut
    Décidément, t'es vraiment dans le même cas que moi
    J'ai trouvé tout un tas de librairie mais pas pour Python 2.5 , c'est d'ailleurs pour ça que j'ai demandé s'il y avait moyen d'installer une librairie pour Python 2.4 sous Python 2.5
    Maintenant, je place tous mes espoirs sur gstreamer

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    J'ai continué à regarder comment je pouvais faire avec wxPython.
    Il y a wxSound et wxMediaCtrl.

    avec wxSound le seul moyen de faire ce que je veux c'est à priori de boucler une fonction.
    wxMediaCtrl a l'air plus puissant, mais je n'ai pas encore eu le temps de tout zieuter... Il permet notamment de connaitre la durée en milli-seconde du fichier qui est joué... donc en bidouillant deux ou trois bout de code, on pourrait imaginer le lancement d'une "tempo" qui permettrai de réinitialiser la fonction.
    (En automatisme c'est super simple à faire... donc je pense que là aussi...


    Sinon je vais regarder aussi gstreamer...

    Si tu as plus d'info hésite pas...

  4. #4
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Bon voilà, j'ai pu avancer dans mon projet. Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    #-*- coding:utf-8 -*-
     
    import wx
    import wx.media
     
     
    ID_PLAY = 101
    ID_STOP = 102
    ID_PAUSE = 103
     
     
    class Root(wx.Frame):
        def __init__(self, titre):
            wx.Frame.__init__(self, None, -1, title = titre, size = (372,165))
            icon = wx.Icon('icone.ico', wx.BITMAP_TYPE_ICO)
            self.SetIcon(icon)
            self.status = wx.StatusBar(self, -1)
            self.status.SetFieldsCount(1)
            self.status.SetStatusWidths([-1])
            self.SetStatusBar(self.status)
     
            font0 = wx.Font(9, wx.FONTFAMILY_DECORATIVE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, 'Verdana')
            font1 = wx.Font(8, wx.FONTFAMILY_DECORATIVE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, 'Verdana')
     
            sizer = wx.GridBagSizer()
     
            conteneur = wx.Panel(self, -1)
            conteneur.SetSizer(sizer)
     
            titre = wx.StaticText(conteneur, -1, u"SON WAVE A JOUER:", style = wx.ALIGN_CENTER)
            titre.SetFont(font0)
            self.entree1 = wx.TextCtrl(conteneur, -1, 'son1')
            self.entree1.SetFont(font1)
            self.entree2 = wx.TextCtrl(conteneur, -1, 'son2')
            self.entree2.SetFont(font1)
            btn1 = wx.Button(conteneur, -1, u"PLAY", (20,20))
            btn1.SetFont(font1)
            self.Bind(wx.EVT_BUTTON, self.OnPlay, btn1)
            btn2 = wx.Button(conteneur, -1, u"PAUSE", (20,20))
            btn2.SetFont(font1)
            self.Bind(wx.EVT_BUTTON, self.OnPause, btn2)
            btn3 = wx.Button(conteneur, -1, u"STOP", (20,20))
            btn3.SetFont(font1)
            self.Bind(wx.EVT_BUTTON, self.OnStop, btn3)
     
     
            self.pos = wx.StaticText(conteneur, -1, '0')
            self.son = wx.media.MediaCtrl(conteneur,-1,self.entree1.GetValue()+'.wav', style=wx.SIMPLE_BORDER)
     
            sizer.Add(titre, (0,2))
            sizer.Add(self.entree1, (1,1))
            sizer.Add(self.entree2, (1,2))
            sizer.Add(btn1, (3,1))
            sizer.Add(btn2, (3,2))
            sizer.Add(btn3, (3,3))
            sizer.Add(self.son, (3,4))
            sizer.Add(self.pos, (3,5))
     
        def OnTimer(self, evt):
            offset = self.son.Tell()
            self.pos.SetLabel('%d' % offset)
            a = self.son.Length
            self.Comparaison(offset)
     
        def OnPlay(self, evt):
            self.timer = wx.Timer(self)
            self.Bind(wx.EVT_TIMER, self.OnTimer)
            self.timer.Start(100)
            self.son.Play()
     
     
        def Comparaison(self, time):
            if time < 1000:
                pass
            else:
                print time
     
        def OnPause(self, evt):
            self.son.Pause()
     
        def OnStop(self, evt):
            self.son.Stop()
     
     
    class MonApp(wx.App):
        def OnInit(self):
            fen = Root(u"Musique")
            fen.Show(True)
            self.SetTopWindow(fen)
            return True
     
    app = MonApp()
    app.MainLoop()
    Maintenant il me reste plus qu'a trouver une solution pour remplacer le fichier à lire à l'instant T et de relancer la fonction OnPlay().
    Je pense que ceci doit être faisable dans la fonction Comparaison() mais j'ai pas encore trouvé.

    Si quelqu'un à une idée, elle sera la bienvenue.

    Moi je re-travaille dessus demain.

    Bye à tous

  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Bon voilà j'ai pu encore avancé un peu et je bloque là.

    J'ai quelque peut modifier le code. Le voici à jour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    #-*- coding:utf-8 -*-
     
    import wx
    import wx.media
     
     
    ID_PLAY = 101
    ID_STOP = 102
    ID_PAUSE = 103
     
     
    class Root(wx.Frame):
        def __init__(self, titre):
            wx.Frame.__init__(self, None, -1, title = titre, size = (372,165))
            icon = wx.Icon('icone.ico', wx.BITMAP_TYPE_ICO)
            self.SetIcon(icon)
            self.status = wx.StatusBar(self, -1)
            self.status.SetFieldsCount(1)
            self.status.SetStatusWidths([-1])
            self.SetStatusBar(self.status)
     
            font0 = wx.Font(9, wx.FONTFAMILY_DECORATIVE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, 'Verdana')
            font1 = wx.Font(8, wx.FONTFAMILY_DECORATIVE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, 'Verdana')
     
            sizer = wx.GridBagSizer()
     
            conteneur = wx.Panel(self, -1)
            conteneur.SetSizer(sizer)
     
            titre = wx.StaticText(conteneur, -1, u"SON WAVE A JOUER:", style = wx.ALIGN_CENTER)
            titre.SetFont(font0)
            self.entree1 = wx.TextCtrl(conteneur, -1, 'son1')
            self.entree1.SetFont(font1)
            self.entree2 = wx.TextCtrl(conteneur, -1, 'son2')
            self.entree2.SetFont(font1)
            btn1 = wx.Button(conteneur, -1, u"PLAY", (20,20))
            btn1.SetFont(font1)
            self.Bind(wx.EVT_BUTTON, self.Play, btn1)
            btn2 = wx.Button(conteneur, -1, u"PAUSE", (20,20))
            btn2.SetFont(font1)
            self.Bind(wx.EVT_BUTTON, self.OnPause, btn2)
            btn3 = wx.Button(conteneur, -1, u"STOP", (20,20))
            btn3.SetFont(font1)
            self.Bind(wx.EVT_BUTTON, self.OnStop, btn3)
     
     
            self.pos = wx.StaticText(conteneur, -1, '0')
            self.son = wx.media.MediaCtrl(conteneur,-1, style=wx.SIMPLE_BORDER)
            self.Choix()
     
            sizer.Add(titre, (0,2))
            sizer.Add(self.entree1, (1,1))
            sizer.Add(self.entree2, (1,2))
            sizer.Add(btn1, (3,1))
            sizer.Add(btn2, (3,2))
            sizer.Add(btn3, (3,3))
            sizer.Add(self.son, (3,4))
            sizer.Add(self.pos, (3,5))
     
        def OnTimer(self, evt):
            offset = self.son.Tell()
            self.pos.SetLabel('%d' % offset)
            a = self.son.Length
            self.Comparaison(offset)
     
        def Play(self,evt):
            self.OnPlay()
     
        def OnPlay(self):
            self.timer = wx.Timer(self)
            self.Bind(wx.EVT_TIMER, self.OnTimer)
            self.timer.Start(100)
            self.son.Play()
     
        def Choix(self):
            self.OnLoad('son1.wav')
     
        def OnLoad(self, path):
            self.son.Load(path)
     
     
        def Comparaison(self, time):
            if time < 1000:
                pass
            else:
                self.OnStop(self)
                self.OnLoad('son2.wav')
                self.OnPlay()
                print time
     
        def OnPause(self, evt):
            self.son.Pause()
     
        def OnStop(self, evt):
            self.son.Stop()
     
     
    class MonApp(wx.App):
        def OnInit(self):
            fen = Root(u"Musique")
            fen.Show(True)
            self.SetTopWindow(fen)
            return True
     
    app = MonApp()
    app.MainLoop()

    Le problème se situe au moment où la fonction Comparaison() se lance.
    Une fois time > à 1000, le son s'arrête, se charge mais ne redémarre pas...

    Un petit coup de main serai le bienvenu.

    Merci

  6. #6
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Pour Pymedia, il existe une version pour windows et python 2.5
    =>
    http://pymedia.org/downloads/pymedia...in32-py2.5.exe

  7. #7
    Membre averti Avatar de zabibof
    Inscrit en
    Février 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 188
    Points : 344
    Points
    344
    Par défaut
    Merci Guigui_

    Dis, c'est récent??? Parce que je suis complètement passé à côté de ça quand j'ai fais mes recherches, j'ai trouvé que pymedia pour python 2.4

  8. #8
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Alors la GuiGui, bravo. Je sais pas comment tu as fait pour la trouver, parce que je suis comme zabibof, j'ai rien vu pendant mes recherches.

    Merci bien

  9. #9
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Non, ca date
    Je me souvenais d'un membre qui avait donné le lien ( http://www.developpez.net/forums/d40...-python-2-5-a/ ).

  10. #10
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Cette citation veint d'un autre message. Merci à fred1599:
    Citation Envoyé par fred1599 Voir le message
    Pour windows il y a le module winsound aussi
    I M P E C C A B L E

    La chose primordiale que j'essaye de faire depuis 2 jours se fait avec winsound
    de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import winsound
    winsound.PlaySound("son1.wav", winsound.SND_ALIAS)
    winsound.PlaySound("son2.wav", winsound.SND_ALIAS)
    winsound.PlaySound("son1.wav", winsound.SND_ALIAS)
    winsound.PlaySound("son2.wav", winsound.SND_ALIAS)
    No comment...

    Reste juste à savoir comment on arrête le son...

    Seul souci effectivement va se situer le jour ou je vais vouloir faire mon projet pour linux...
    On verra ça après. Chaque chose en son temps.

    J'ai essayé pymedia... no comment aussi... j'ai pas vraiment l'impression que l'on peut en faire plus que wx.sound ou wx.media et ça vraiment l'ai plus compliqué.



    Merci à tous

  11. #11
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Je pense être sur la bonne piste... avec wx.media

    Il me suffit juste de trouver le moyen de faire reconnaitre à mon code le moment où le morceau n-1 se termine pour lancer le morceau n.

    Pour cela j'utilise le timer. Ça marche nikel pour la transition entre le premier et le deuxième morceau, mais ensuite ça coince.
    Il faudrait que je trouve le moyen de rendre le timer indépendant du morceau qui passe.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    import wx
    import wx.media
     
     
     
    ID_PLAY = 101
    ID_STOP = 102
    ID_PAUSE = 103
     
    dico_1 = {0:'son1', 1:'son2', 3:'son3'}
    dico_2 = {0:'son1.wav', 1:'son2.wav', 2:'son3.wav'}
     
     
    class Root(wx.Frame):
        def __init__(self, titre):
            wx.Frame.__init__(self, None, -1, title = titre, size = (372,165))
            icon = wx.Icon('icone.ico', wx.BITMAP_TYPE_ICO)
            self.SetIcon(icon)
            self.status = wx.StatusBar(self, -1)
            self.status.SetFieldsCount(1)
            self.status.SetStatusWidths([-1])
            self.SetStatusBar(self.status)
     
            font0 = wx.Font(9, wx.FONTFAMILY_DECORATIVE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, 'Verdana')
            font1 = wx.Font(8, wx.FONTFAMILY_DECORATIVE, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, 'Verdana')
     
            self.sizer = wx.GridBagSizer()
     
            self.conteneur = wx.Panel(self, -1)
            self.conteneur.SetSizer(self.sizer)
     
            titre = wx.StaticText(self.conteneur, -1, u"SON WAVE A JOUER:", style = wx.ALIGN_CENTER)
            titre.SetFont(font0)
            self.entree1 = wx.TextCtrl(self.conteneur, -1, 'son1')
            self.entree1.SetFont(font1)
            self.entree2 = wx.TextCtrl(self.conteneur, -1, 'son2')
            self.entree2.SetFont(font1)
            btn1 = wx.Button(self.conteneur, -1, u"PLAY", (20,20))
            btn1.SetFont(font1)
            self.Bind(wx.EVT_BUTTON, self.OnPlay, btn1)
            btn2 = wx.Button(self.conteneur, -1, u"PAUSE", (20,20))
            btn2.SetFont(font1)
            #self.Bind(wx.EVT_BUTTON, self.OnPause, btn2)
            btn3 = wx.Button(self.conteneur, -1, u"STOP", (20,20))
            btn3.SetFont(font1)
            self.Bind(wx.EVT_BUTTON, self.OnStop, btn3)
     
     
            self.pos = wx.StaticText(self.conteneur, -1, '0')
            self.OnLoad()
     
            self.sizer.Add(titre, (0,2))
            self.sizer.Add(self.entree1, (1,1))
            self.sizer.Add(self.entree2, (1,2))
            self.sizer.Add(btn1, (3,1))
            self.sizer.Add(btn2, (3,2))
            self.sizer.Add(btn3, (3,3))
            self.sizer.Add(self.pos, (3,4))
            self.sizer.Add(dico_1[0], (3,5))
            self.sizer.Add(dico_1[1], (3,6))
     
     
        def OnTimer(self, evt):
            self.offset = dico_1[0].Tell()
            self.pos.SetLabel('%d' % self.offset)
            self.Comparaison(self.offset)
     
        def OnTimer1(self, wave):
            self.offset = wave.Tell()
            self.pos.SetLabel('%d' % self.offset)
            self.Comparaison(self.offset)
     
        def OnLoad(self):
     
            """for i in dico:
                dico[0]= wx.media.MediaCtrl(self.conteneur,-1)"""
     
            dico_1[0] = wx.media.MediaCtrl(self.conteneur, -1)
            dico_1[1] = wx.media.MediaCtrl(self.conteneur,-1)
            dico_1[2] = wx.media.MediaCtrl(self.conteneur,-1)
            path1 = 'son1.wav'
            path2 = 'son2.wav'
            path3 = 'son3.wav'
            file1 = dico_1[0].Load
            file2 = dico_1[1].Load
            file3 = dico_1[2].Load
            file1(path1)
            file2(path2)
            file3(path3)
     
        def LanceTimer(self):
            self.timer = wx.Timer(self)
            self.Bind(wx.EVT_TIMER, self.OnTimer)
            self.timer.Start(100)
     
        def OnPlay(self,evt):
            dico_1[0].Play()
            a = dico_1[0].GetState()
            l = dico_1[0].Length()
            self.LanceTimer()
     
     
        def Comparaison(self, time):
            if time < dico_1[0].Length()-1:
                pass
            else:
                dico_1[0].Pause()
            if dico_1[0].GetState() == 1:
                dico_1[0].Stop()
                dico_1[1].Play()
     
        def OnPause(self):
            print dico_1[0].Tell()
     
        def OnStop(self, evt):
            dico_1[0].Stop()
     
     
    class MonApp(wx.App):
        def OnInit(self):
            fen = Root(u"Musique")
            fen.Show(True)
            self.SetTopWindow(fen)
            return True
     
    app = MonApp()
    app.MainLoop()
    Si quelqu'un peut m'aider...

    Tchao

Discussions similaires

  1. Comment utiliser du son avec la gtk?
    Par grex1 dans le forum GTK+ avec C & C++
    Réponses: 10
    Dernier message: 24/02/2010, 19h11
  2. Comment utiliser FMod avec plusieurs cartes sons?
    Par NJKMASTER dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/11/2007, 11h43
  3. Comment utiliser un composant sans son nom ?
    Par aliwassem dans le forum Langage
    Réponses: 4
    Dernier message: 03/10/2005, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo