blob: 61f34cddc1d99b15d3c442ca96a7aea0add8c512 [file] [log] [blame]
Georg Brandl116aa622007-08-15 14:28:22 +00001:mod:`winsound` --- Sound-playing interface for Windows
2=======================================================
3
4.. module:: winsound
5 :platform: Windows
6 :synopsis: Access to the sound-playing machinery for Windows.
7.. moduleauthor:: Toby Dickenson <htrd90@zepler.org>
8.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
9
10
Georg Brandl116aa622007-08-15 14:28:22 +000011The :mod:`winsound` module provides access to the basic sound-playing machinery
12provided by Windows platforms. It includes functions and several constants.
13
14
15.. function:: Beep(frequency, duration)
16
17 Beep the PC's speaker. The *frequency* parameter specifies frequency, in hertz,
18 of the sound, and must be in the range 37 through 32,767. The *duration*
19 parameter specifies the number of milliseconds the sound should last. If the
20 system is not able to beep the speaker, :exc:`RuntimeError` is raised.
21
Georg Brandl116aa622007-08-15 14:28:22 +000022
23.. function:: PlaySound(sound, flags)
24
Georg Brandl60203b42010-10-06 10:11:56 +000025 Call the underlying :c:func:`PlaySound` function from the Platform API. The
Georg Brandl116aa622007-08-15 14:28:22 +000026 *sound* parameter may be a filename, audio data as a string, or ``None``. Its
Christian Heimesfaf2f632008-01-06 16:59:19 +000027 interpretation depends on the value of *flags*, which can be a bitwise ORed
Benjamin Petersonda10d3b2009-01-01 00:23:30 +000028 combination of the constants described below. If the *sound* parameter is
29 ``None``, any currently playing waveform sound is stopped. If the system
30 indicates an error, :exc:`RuntimeError` is raised.
Georg Brandl116aa622007-08-15 14:28:22 +000031
32
Georg Brandl7f01a132009-09-16 15:58:14 +000033.. function:: MessageBeep(type=MB_OK)
Georg Brandl116aa622007-08-15 14:28:22 +000034
Georg Brandl60203b42010-10-06 10:11:56 +000035 Call the underlying :c:func:`MessageBeep` function from the Platform API. This
Georg Brandl116aa622007-08-15 14:28:22 +000036 plays a sound as specified in the registry. The *type* argument specifies which
37 sound to play; possible values are ``-1``, ``MB_ICONASTERISK``,
38 ``MB_ICONEXCLAMATION``, ``MB_ICONHAND``, ``MB_ICONQUESTION``, and ``MB_OK``, all
39 described below. The value ``-1`` produces a "simple beep"; this is the final
40 fallback if a sound cannot be played otherwise.
41
Georg Brandl116aa622007-08-15 14:28:22 +000042
43.. data:: SND_FILENAME
44
45 The *sound* parameter is the name of a WAV file. Do not use with
46 :const:`SND_ALIAS`.
47
48
49.. data:: SND_ALIAS
50
51 The *sound* parameter is a sound association name from the registry. If the
52 registry contains no such name, play the system default sound unless
53 :const:`SND_NODEFAULT` is also specified. If no default sound is registered,
54 raise :exc:`RuntimeError`. Do not use with :const:`SND_FILENAME`.
55
56 All Win32 systems support at least the following; most systems support many
57 more:
58
59 +--------------------------+----------------------------------------+
60 | :func:`PlaySound` *name* | Corresponding Control Panel Sound name |
61 +==========================+========================================+
62 | ``'SystemAsterisk'`` | Asterisk |
63 +--------------------------+----------------------------------------+
64 | ``'SystemExclamation'`` | Exclamation |
65 +--------------------------+----------------------------------------+
66 | ``'SystemExit'`` | Exit Windows |
67 +--------------------------+----------------------------------------+
68 | ``'SystemHand'`` | Critical Stop |
69 +--------------------------+----------------------------------------+
70 | ``'SystemQuestion'`` | Question |
71 +--------------------------+----------------------------------------+
72
73 For example::
74
75 import winsound
76 # Play Windows exit sound.
77 winsound.PlaySound("SystemExit", winsound.SND_ALIAS)
78
79 # Probably play Windows default sound, if any is registered (because
80 # "*" probably isn't the registered name of any sound).
81 winsound.PlaySound("*", winsound.SND_ALIAS)
82
83
84.. data:: SND_LOOP
85
86 Play the sound repeatedly. The :const:`SND_ASYNC` flag must also be used to
87 avoid blocking. Cannot be used with :const:`SND_MEMORY`.
88
89
90.. data:: SND_MEMORY
91
92 The *sound* parameter to :func:`PlaySound` is a memory image of a WAV file, as a
93 string.
94
95 .. note::
96
97 This module does not support playing from a memory image asynchronously, so a
98 combination of this flag and :const:`SND_ASYNC` will raise :exc:`RuntimeError`.
99
100
101.. data:: SND_PURGE
102
103 Stop playing all instances of the specified sound.
104
Benjamin Petersonda10d3b2009-01-01 00:23:30 +0000105 .. note::
106
107 This flag is not supported on modern Windows platforms.
108
Georg Brandl116aa622007-08-15 14:28:22 +0000109
110.. data:: SND_ASYNC
111
112 Return immediately, allowing sounds to play asynchronously.
113
114
115.. data:: SND_NODEFAULT
116
117 If the specified sound cannot be found, do not play the system default sound.
118
119
120.. data:: SND_NOSTOP
121
122 Do not interrupt sounds currently playing.
123
124
125.. data:: SND_NOWAIT
126
127 Return immediately if the sound driver is busy.
128
Georg Brandlaeaecfd2013-10-13 10:49:41 +0200129 .. note::
130
131 This flag is not supported on modern Windows platforms.
132
Georg Brandl116aa622007-08-15 14:28:22 +0000133
134.. data:: MB_ICONASTERISK
135
136 Play the ``SystemDefault`` sound.
137
138
139.. data:: MB_ICONEXCLAMATION
140
141 Play the ``SystemExclamation`` sound.
142
143
144.. data:: MB_ICONHAND
145
146 Play the ``SystemHand`` sound.
147
148
149.. data:: MB_ICONQUESTION
150
151 Play the ``SystemQuestion`` sound.
152
153
154.. data:: MB_OK
155
156 Play the ``SystemDefault`` sound.
157