blob: dfe3c84253e8528d8883d11a65c27826e4100a25 [file] [log] [blame]
Georg Brandl116aa622007-08-15 14:28:22 +00001
2:mod:`winsound` --- Sound-playing interface for Windows
3=======================================================
4
5.. module:: winsound
6 :platform: Windows
7 :synopsis: Access to the sound-playing machinery for Windows.
8.. moduleauthor:: Toby Dickenson <htrd90@zepler.org>
9.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
10
11
Georg Brandl116aa622007-08-15 14:28:22 +000012The :mod:`winsound` module provides access to the basic sound-playing machinery
13provided by Windows platforms. It includes functions and several constants.
14
15
16.. function:: Beep(frequency, duration)
17
18 Beep the PC's speaker. The *frequency* parameter specifies frequency, in hertz,
19 of the sound, and must be in the range 37 through 32,767. The *duration*
20 parameter specifies the number of milliseconds the sound should last. If the
21 system is not able to beep the speaker, :exc:`RuntimeError` is raised.
22
Georg Brandl116aa622007-08-15 14:28:22 +000023
24.. function:: PlaySound(sound, flags)
25
26 Call the underlying :cfunc:`PlaySound` function from the Platform API. The
27 *sound* parameter may be a filename, audio data as a string, or ``None``. Its
Christian Heimesfaf2f632008-01-06 16:59:19 +000028 interpretation depends on the value of *flags*, which can be a bitwise ORed
Georg Brandl116aa622007-08-15 14:28:22 +000029 combination of the constants described below. If the system indicates an error,
30 :exc:`RuntimeError` is raised.
31
32
33.. function:: MessageBeep([type=MB_OK])
34
35 Call the underlying :cfunc:`MessageBeep` function from the Platform API. This
36 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
105
106.. data:: SND_ASYNC
107
108 Return immediately, allowing sounds to play asynchronously.
109
110
111.. data:: SND_NODEFAULT
112
113 If the specified sound cannot be found, do not play the system default sound.
114
115
116.. data:: SND_NOSTOP
117
118 Do not interrupt sounds currently playing.
119
120
121.. data:: SND_NOWAIT
122
123 Return immediately if the sound driver is busy.
124
125
126.. data:: MB_ICONASTERISK
127
128 Play the ``SystemDefault`` sound.
129
130
131.. data:: MB_ICONEXCLAMATION
132
133 Play the ``SystemExclamation`` sound.
134
135
136.. data:: MB_ICONHAND
137
138 Play the ``SystemHand`` sound.
139
140
141.. data:: MB_ICONQUESTION
142
143 Play the ``SystemQuestion`` sound.
144
145
146.. data:: MB_OK
147
148 Play the ``SystemDefault`` sound.
149