• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
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
12.. versionadded:: 1.5.2
13
14The :mod:`winsound` module provides access to the basic sound-playing machinery
15provided by Windows platforms.  It includes functions and several constants.
16
17
18.. function:: Beep(frequency, duration)
19
20   Beep the PC's speaker. The *frequency* parameter specifies frequency, in hertz,
21   of the sound, and must be in the range 37 through 32,767. The *duration*
22   parameter specifies the number of milliseconds the sound should last.  If the
23   system is not able to beep the speaker, :exc:`RuntimeError` is raised.
24
25   .. versionadded:: 1.6
26
27
28.. function:: PlaySound(sound, flags)
29
30   Call the underlying :c:func:`PlaySound` function from the Platform API.  The
31   *sound* parameter may be a filename, audio data as a string, or ``None``.  Its
32   interpretation depends on the value of *flags*, which can be a bitwise ORed
33   combination of the constants described below. If the *sound* parameter is
34   ``None``, any currently playing waveform sound is stopped. If the system
35   indicates an error, :exc:`RuntimeError` is raised.
36
37
38.. function:: MessageBeep([type=MB_OK])
39
40   Call the underlying :c:func:`MessageBeep` function from the Platform API.  This
41   plays a sound as specified in the registry.  The *type* argument specifies which
42   sound to play; possible values are ``-1``, ``MB_ICONASTERISK``,
43   ``MB_ICONEXCLAMATION``, ``MB_ICONHAND``, ``MB_ICONQUESTION``, and ``MB_OK``, all
44   described below.  The value ``-1`` produces a "simple beep"; this is the final
45   fallback if a sound cannot be played otherwise.
46
47   .. versionadded:: 2.3
48
49
50.. data:: SND_FILENAME
51
52   The *sound* parameter is the name of a WAV file. Do not use with
53   :const:`SND_ALIAS`.
54
55
56.. data:: SND_ALIAS
57
58   The *sound* parameter is a sound association name from the registry.  If the
59   registry contains no such name, play the system default sound unless
60   :const:`SND_NODEFAULT` is also specified. If no default sound is registered,
61   raise :exc:`RuntimeError`. Do not use with :const:`SND_FILENAME`.
62
63   All Win32 systems support at least the following; most systems support many
64   more:
65
66   +--------------------------+----------------------------------------+
67   | :func:`PlaySound` *name* | Corresponding Control Panel Sound name |
68   +==========================+========================================+
69   | ``'SystemAsterisk'``     | Asterisk                               |
70   +--------------------------+----------------------------------------+
71   | ``'SystemExclamation'``  | Exclamation                            |
72   +--------------------------+----------------------------------------+
73   | ``'SystemExit'``         | Exit Windows                           |
74   +--------------------------+----------------------------------------+
75   | ``'SystemHand'``         | Critical Stop                          |
76   +--------------------------+----------------------------------------+
77   | ``'SystemQuestion'``     | Question                               |
78   +--------------------------+----------------------------------------+
79
80   For example::
81
82      import winsound
83      # Play Windows exit sound.
84      winsound.PlaySound("SystemExit", winsound.SND_ALIAS)
85
86      # Probably play Windows default sound, if any is registered (because
87      # "*" probably isn't the registered name of any sound).
88      winsound.PlaySound("*", winsound.SND_ALIAS)
89
90
91.. data:: SND_LOOP
92
93   Play the sound repeatedly.  The :const:`SND_ASYNC` flag must also be used to
94   avoid blocking.  Cannot be used with :const:`SND_MEMORY`.
95
96
97.. data:: SND_MEMORY
98
99   The *sound* parameter to :func:`PlaySound` is a memory image of a WAV file, as a
100   string.
101
102   .. note::
103
104      This module does not support playing from a memory image asynchronously, so a
105      combination of this flag and :const:`SND_ASYNC` will raise :exc:`RuntimeError`.
106
107
108.. data:: SND_PURGE
109
110   Stop playing all instances of the specified sound.
111
112   .. note::
113
114      This flag is not supported on modern Windows platforms.
115
116
117.. data:: SND_ASYNC
118
119   Return immediately, allowing sounds to play asynchronously.
120
121
122.. data:: SND_NODEFAULT
123
124   If the specified sound cannot be found, do not play the system default sound.
125
126
127.. data:: SND_NOSTOP
128
129   Do not interrupt sounds currently playing.
130
131
132.. data:: SND_NOWAIT
133
134   Return immediately if the sound driver is busy.
135
136   .. note::
137
138      This flag is not supported on modern Windows platforms.
139
140
141.. data:: MB_ICONASTERISK
142
143   Play the ``SystemDefault`` sound.
144
145
146.. data:: MB_ICONEXCLAMATION
147
148   Play the ``SystemExclamation`` sound.
149
150
151.. data:: MB_ICONHAND
152
153   Play the ``SystemHand`` sound.
154
155
156.. data:: MB_ICONQUESTION
157
158   Play the ``SystemQuestion`` sound.
159
160
161.. data:: MB_OK
162
163   Play the ``SystemDefault`` sound.
164
165