Issue #5262: Improved fix.
[python.git] / Doc / library / winsound.rst
blobb4a3391d1a991864c8aa37b0177ed5edf4911f12
2 :mod:`winsound` --- Sound-playing interface for Windows
3 =======================================================
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>
12 .. versionadded:: 1.5.2
14 The :mod:`winsound` module provides access to the basic sound-playing machinery
15 provided by Windows platforms.  It includes functions and several constants.
18 .. function:: Beep(frequency, duration)
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.
25    .. versionadded:: 1.6
28 .. function:: PlaySound(sound, flags)
30    Call the underlying :cfunc:`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.
38 .. function:: MessageBeep([type=MB_OK])
40    Call the underlying :cfunc:`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.
47    .. versionadded:: 2.3
50 .. data:: SND_FILENAME
52    The *sound* parameter is the name of a WAV file. Do not use with
53    :const:`SND_ALIAS`.
56 .. data:: SND_ALIAS
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`.
63    All Win32 systems support at least the following; most systems support many
64    more:
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    +--------------------------+----------------------------------------+
80    For example::
82       import winsound
83       # Play Windows exit sound.
84       winsound.PlaySound("SystemExit", winsound.SND_ALIAS)
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)
91 .. data:: SND_LOOP
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`.
97 .. data:: SND_MEMORY
99    The *sound* parameter to :func:`PlaySound` is a memory image of a WAV file, as a
100    string.
102    .. note::
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`.
108 .. data:: SND_PURGE
110    Stop playing all instances of the specified sound.
112    .. note::
114       This flag is not supported on modern Windows platforms.
117 .. data:: SND_ASYNC
119    Return immediately, allowing sounds to play asynchronously.
122 .. data:: SND_NODEFAULT
124    If the specified sound cannot be found, do not play the system default sound.
127 .. data:: SND_NOSTOP
129    Do not interrupt sounds currently playing.
132 .. data:: SND_NOWAIT
134    Return immediately if the sound driver is busy.
137 .. data:: MB_ICONASTERISK
139    Play the ``SystemDefault`` sound.
142 .. data:: MB_ICONEXCLAMATION
144    Play the ``SystemExclamation`` sound.
147 .. data:: MB_ICONHAND
149    Play the ``SystemHand`` sound.
152 .. data:: MB_ICONQUESTION
154    Play the ``SystemQuestion`` sound.
157 .. data:: MB_OK
159    Play the ``SystemDefault`` sound.