|  | :mod:`winsound` --- Sound-playing interface for Windows | 
|  | ======================================================= | 
|  |  | 
|  | .. module:: winsound | 
|  | :platform: Windows | 
|  | :synopsis: Access to the sound-playing machinery for Windows. | 
|  |  | 
|  | .. moduleauthor:: Toby Dickenson <htrd90@zepler.org> | 
|  | .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org> | 
|  |  | 
|  | -------------- | 
|  |  | 
|  | The :mod:`winsound` module provides access to the basic sound-playing machinery | 
|  | provided by Windows platforms.  It includes functions and several constants. | 
|  |  | 
|  |  | 
|  | .. function:: Beep(frequency, duration) | 
|  |  | 
|  | Beep the PC's speaker. The *frequency* parameter specifies frequency, in hertz, | 
|  | of the sound, and must be in the range 37 through 32,767. The *duration* | 
|  | parameter specifies the number of milliseconds the sound should last.  If the | 
|  | system is not able to beep the speaker, :exc:`RuntimeError` is raised. | 
|  |  | 
|  |  | 
|  | .. function:: PlaySound(sound, flags) | 
|  |  | 
|  | Call the underlying :c:func:`PlaySound` function from the Platform API.  The | 
|  | *sound* parameter may be a filename, a system sound alias, audio data as a | 
|  | :term:`bytes-like object`, or ``None``.  Its | 
|  | interpretation depends on the value of *flags*, which can be a bitwise ORed | 
|  | combination of the constants described below. If the *sound* parameter is | 
|  | ``None``, any currently playing waveform sound is stopped. If the system | 
|  | indicates an error, :exc:`RuntimeError` is raised. | 
|  |  | 
|  |  | 
|  | .. function:: MessageBeep(type=MB_OK) | 
|  |  | 
|  | Call the underlying :c:func:`MessageBeep` function from the Platform API.  This | 
|  | plays a sound as specified in the registry.  The *type* argument specifies which | 
|  | sound to play; possible values are ``-1``, ``MB_ICONASTERISK``, | 
|  | ``MB_ICONEXCLAMATION``, ``MB_ICONHAND``, ``MB_ICONQUESTION``, and ``MB_OK``, all | 
|  | described below.  The value ``-1`` produces a "simple beep"; this is the final | 
|  | fallback if a sound cannot be played otherwise.  If the system indicates an | 
|  | error, :exc:`RuntimeError` is raised. | 
|  |  | 
|  |  | 
|  | .. data:: SND_FILENAME | 
|  |  | 
|  | The *sound* parameter is the name of a WAV file. Do not use with | 
|  | :const:`SND_ALIAS`. | 
|  |  | 
|  |  | 
|  | .. data:: SND_ALIAS | 
|  |  | 
|  | The *sound* parameter is a sound association name from the registry.  If the | 
|  | registry contains no such name, play the system default sound unless | 
|  | :const:`SND_NODEFAULT` is also specified. If no default sound is registered, | 
|  | raise :exc:`RuntimeError`. Do not use with :const:`SND_FILENAME`. | 
|  |  | 
|  | All Win32 systems support at least the following; most systems support many | 
|  | more: | 
|  |  | 
|  | +--------------------------+----------------------------------------+ | 
|  | | :func:`PlaySound` *name* | Corresponding Control Panel Sound name | | 
|  | +==========================+========================================+ | 
|  | | ``'SystemAsterisk'``     | Asterisk                               | | 
|  | +--------------------------+----------------------------------------+ | 
|  | | ``'SystemExclamation'``  | Exclamation                            | | 
|  | +--------------------------+----------------------------------------+ | 
|  | | ``'SystemExit'``         | Exit Windows                           | | 
|  | +--------------------------+----------------------------------------+ | 
|  | | ``'SystemHand'``         | Critical Stop                          | | 
|  | +--------------------------+----------------------------------------+ | 
|  | | ``'SystemQuestion'``     | Question                               | | 
|  | +--------------------------+----------------------------------------+ | 
|  |  | 
|  | For example:: | 
|  |  | 
|  | import winsound | 
|  | # Play Windows exit sound. | 
|  | winsound.PlaySound("SystemExit", winsound.SND_ALIAS) | 
|  |  | 
|  | # Probably play Windows default sound, if any is registered (because | 
|  | # "*" probably isn't the registered name of any sound). | 
|  | winsound.PlaySound("*", winsound.SND_ALIAS) | 
|  |  | 
|  |  | 
|  | .. data:: SND_LOOP | 
|  |  | 
|  | Play the sound repeatedly.  The :const:`SND_ASYNC` flag must also be used to | 
|  | avoid blocking.  Cannot be used with :const:`SND_MEMORY`. | 
|  |  | 
|  |  | 
|  | .. data:: SND_MEMORY | 
|  |  | 
|  | The *sound* parameter to :func:`PlaySound` is a memory image of a WAV file, as a | 
|  | :term:`bytes-like object`. | 
|  |  | 
|  | .. note:: | 
|  |  | 
|  | This module does not support playing from a memory image asynchronously, so a | 
|  | combination of this flag and :const:`SND_ASYNC` will raise :exc:`RuntimeError`. | 
|  |  | 
|  |  | 
|  | .. data:: SND_PURGE | 
|  |  | 
|  | Stop playing all instances of the specified sound. | 
|  |  | 
|  | .. note:: | 
|  |  | 
|  | This flag is not supported on modern Windows platforms. | 
|  |  | 
|  |  | 
|  | .. data:: SND_ASYNC | 
|  |  | 
|  | Return immediately, allowing sounds to play asynchronously. | 
|  |  | 
|  |  | 
|  | .. data:: SND_NODEFAULT | 
|  |  | 
|  | If the specified sound cannot be found, do not play the system default sound. | 
|  |  | 
|  |  | 
|  | .. data:: SND_NOSTOP | 
|  |  | 
|  | Do not interrupt sounds currently playing. | 
|  |  | 
|  |  | 
|  | .. data:: SND_NOWAIT | 
|  |  | 
|  | Return immediately if the sound driver is busy. | 
|  |  | 
|  | .. note:: | 
|  |  | 
|  | This flag is not supported on modern Windows platforms. | 
|  |  | 
|  |  | 
|  | .. data:: MB_ICONASTERISK | 
|  |  | 
|  | Play the ``SystemDefault`` sound. | 
|  |  | 
|  |  | 
|  | .. data:: MB_ICONEXCLAMATION | 
|  |  | 
|  | Play the ``SystemExclamation`` sound. | 
|  |  | 
|  |  | 
|  | .. data:: MB_ICONHAND | 
|  |  | 
|  | Play the ``SystemHand`` sound. | 
|  |  | 
|  |  | 
|  | .. data:: MB_ICONQUESTION | 
|  |  | 
|  | Play the ``SystemQuestion`` sound. | 
|  |  | 
|  |  | 
|  | .. data:: MB_OK | 
|  |  | 
|  | Play the ``SystemDefault`` sound. | 
|  |  |