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() |
Partager