]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/MediaCtrl.py
8 #----------------------------------------------------------------------
10 class TestPanel(wx
.Panel
):
11 def __init__(self
, parent
, log
):
13 wx
.Panel
.__init
__(self
, parent
, -1,
14 style
=wx
.TAB_TRAVERSAL|wx
.CLIP_CHILDREN
)
16 # Create some controls
17 self
.mc
= wx
.media
.MediaCtrl(self
, -1, opj("data/testmovie.mpg"),
18 style
=wx
.SIMPLE_BORDER
)
19 self
.mc
.SetBackgroundColour("black")
20 #self.mc.SetMinSize((320,200))
23 btn1
= wx
.Button(self
, -1, "Load File")
24 self
.Bind(wx
.EVT_BUTTON
, self
.OnLoadFile
, btn1
)
26 btn2
= wx
.Button(self
, -1, "Play")
27 self
.Bind(wx
.EVT_BUTTON
, self
.OnPlay
, btn2
)
29 btn3
= wx
.Button(self
, -1, "Pause")
30 self
.Bind(wx
.EVT_BUTTON
, self
.OnPause
, btn3
)
32 btn4
= wx
.Button(self
, -1, "Stop")
33 self
.Bind(wx
.EVT_BUTTON
, self
.OnStop
, btn4
)
35 btn5
= wx
.ToggleButton(self
, -1, "Loop")
36 self
.Bind(wx
.EVT_TOGGLEBUTTON
, self
.OnLoopToggle
, btn5
)
40 sizer
= wx
.GridBagSizer(5,5)
41 sizer
.Add(self
.mc
, (1,1), span
=(5,1))#, flag=wx.EXPAND)
42 sizer
.Add(btn1
, (1,3))
43 sizer
.Add(btn2
, (2,3))
44 sizer
.Add(btn3
, (3,3))
45 sizer
.Add(btn4
, (4,3))
46 sizer
.Add(btn5
, (5,3))
50 def OnLoadFile(self
, evt
):
51 dlg
= wx
.FileDialog(self
, message
="Choose a media file",
52 defaultDir
=os
.getcwd(), defaultFile
="",
53 style
=wx
.OPEN | wx
.CHANGE_DIR
)
54 if dlg
.ShowModal() == wx
.ID_OK
:
56 if not self
.mc
.Load(path
):
57 wx
.MessageBox("Unable to load %s: Unsupported format?" % path
,
59 wx
.ICON_ERROR | wx
.OK
)
61 self
.mc
.SetBestFittingSize()
62 self
.GetSizer().Layout()
66 def OnLoopToggle(self
, evt
):
67 btn
= evt
.GetEventObject()
68 self
.mc
.Loop(btn
.GetValue())
71 def OnPlay(self
, evt
):
74 def OnPause(self
, evt
):
77 def OnStop(self
, evt
):
83 #----------------------------------------------------------------------
85 def runTest(frame
, nb
, log
):
87 win
= TestPanel(nb
, log
)
89 except NotImplementedError:
90 from Main
import MessagePanel
91 win
= MessagePanel(nb
, 'wx.MediaCtrl is not available on this platform.',
92 'Sorry', wx
.ICON_WARNING
)
96 #----------------------------------------------------------------------
100 overview
= """<html><body>
101 <h2><center>wx.MediaCtrl</center></h2>
103 wx.MediaCtrl is a class that allows a way to convieniently display types of
104 media, such as videos, audio files, natively through native codecs.
107 wx.MediaCtrl uses native backends to render media, for example on Windows
108 there is a ActiveMovie/DirectShow backend, and on Macintosh there is a
111 wx.MediaCtrl is not currently available on unix systems.
118 if __name__
== '__main__':
121 run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])