]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/Sound.py
6 #----------------------------------------------------------------------
8 class TestPanel(wx
.Panel
):
9 def __init__(self
, parent
, log
):
10 wx
.Panel
.__init
__(self
, parent
, -1)
13 b
= wx
.Button(self
, -1, "Play Sound 1 (sync)", (25, 25))
14 self
.Bind(wx
.EVT_BUTTON
, self
.OnButton1
, b
)
16 b
= wx
.Button(self
, -1, "Play Sound 2 (async)", (25, 65))
17 self
.Bind(wx
.EVT_BUTTON
, self
.OnButton2
, b
)
19 b
= wx
.Button(self
, -1, "Select .WAV file", (25, 105))
20 self
.Bind(wx
.EVT_BUTTON
, self
.OnSelectSound
, b
)
23 def OnButton1(self
, evt
):
25 sound
= wx
.Sound(opj('data/anykey.wav'))
26 self
.log
.write("before Play...\n")
27 sound
.Play(wx
.SOUND_SYNC
)
28 self
.log
.write("...after Play\n")
29 except NotImplementedError, v
:
30 wx
.MessageBox(str(v
), "Exception Message")
33 def OnButton2(self
, evt
):
36 sound
= wx
.Sound(opj('data/plan.wav'))
38 # sounds can also be loaded from a buffer object
39 data
= open(opj('data/plan.wav'), 'rb').read()
40 sound
= wx
.SoundFromData(data
)
42 self
.log
.write("before Play...\n")
43 sound
.Play(wx
.SOUND_ASYNC
)
45 self
.log
.write("...after Play\n")
46 except NotImplementedError, v
:
47 wx
.MessageBox(str(v
), "Exception Message")
50 def OnSelectSound(self
, evt
):
51 dlg
= wx
.FileDialog(wx
.GetTopLevelParent(self
),
52 "Choose a sound file",
53 wildcard
="WAV files (*.wav)|*.wav",
55 if dlg
.ShowModal() == wx
.ID_OK
:
57 #sound = wx.Sound(dlg.GetPath())
60 # another way to do it.
61 wx
.Sound
.PlaySound(dlg
.GetPath())
63 except NotImplementedError, v
:
64 wx
.MessageBox(str(v
), "Exception Message")
68 #----------------------------------------------------------------------
70 def runTest(frame
, nb
, log
):
71 win
= TestPanel(nb
, log
)
74 #----------------------------------------------------------------------
77 overview
= """<html><body>
79 This class represents a short wave file, in Windows WAV format, that can
80 be stored in memory and played. Currently this class is implemented on Windows
83 This demo offers two examples, both driven by buttons, but obviously the event
84 that drives the playing of the sound can come from anywhere.
90 if __name__
== '__main__':
93 run
.main(['', os
.path
.basename(sys
.argv
[0])] + sys
.argv
[1:])