Bonjour,

Je tente désespérément de réaliser un petit programme me permettant de lire successivement des fichier .wav avec wx.media.

La liste de mes titres est stockée dans un dictionnaire de cette manière:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
dico_1 = {0:'son0', 1:'son1', 2:'son2'}
dico_2 = {0:'son0.wav', 1:'son1.wav', 2:'son2.wav'}
L'interface graphique est faite avec wx.Python. Un wx.Button permet de lancer la fonction OnPlay(). La fonction OnLoad() est chargée dès l'ouverture du programme. La fonction Suivant() doit permettre le changement de piste. (c'est ici que j'ai un problème)

Voici le code qui correspond:

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
def OnLoad(self):    
        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)
        file1 = dico_1[0].Load
        file2 = dico_1[1].Load
        file3 = dico_1[2].Load
        file1(dico_2[0])
        file2(dico_2[1])
        file3(dico_2[2])
 
    def OnPlay(self,evt):
        dico_1[0].Play()
        self.Bind(wx.media.EVT_MEDIA_FINISHED, self.Comparaison)
 
 
    def Comparaison(self,evt):
        dico_1[1].Play()
En fait j'aimerai pouvoir faire en sorte que dans Comparaison() le prochain fichier lancé soit celui directement après celui joué (donc celui qui lance l'évènement EVT_MEDIA_FINISHED.

Dans le cas actuel, mon code lance dico_2[0] -dans OnPlay()-, puis dico_2[1] en boucle...

D'avance merci de votre aide