blob: a176221ac61ce15eb3cc4a775182204b56e5afd2 [file] [log] [blame]
\section{\module{winsound} ---
Sound-playing interface for Windows}
\declaremodule{builtin}{winsound}
\platform{Windows}
\modulesynopsis{Access to the sound-playing machinery for Windows.}
\moduleauthor{Toby Dickenson}{htrd90@zepler.org}
\sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org}
\versionadded{1.5.2}
The \module{winsound} module provides access to the basic
sound-playing machinery provided by Windows platforms. It includes
two functions and several constants.
\begin{funcdesc}{Beep}{frequency, duration}
Beep the PC's speaker.
The \var{frequency} parameter specifies frequency, in hertz, of the
sound, and must be in the range 37 through 32,767.
The \var{duration} parameter specifies the number of milliseconds the
sound should last. If the system is not
able to beep the speaker, \exception{RuntimeError} is raised.
\strong{Note:} Under Windows 95 and 98, the Windows \cfunction{Beep()}
function exists but is useless (it ignores its arguments). In that
case Python simulates it via direct port manipulation (added in version
2.1). It's unknown whether that will work on all systems.
\versionadded{1.6}
\end{funcdesc}
\begin{funcdesc}{PlaySound}{sound, flags}
Call the underlying \cfunction{PlaySound()} function from the
Platform API. The \var{sound} parameter may be a filename, audio
data as a string, or \code{None}. Its interpretation depends on the
value of \var{flags}, which can be a bit-wise ORed combination of
the constants described below. If the system indicates an error,
\exception{RuntimeError} is raised.
\end{funcdesc}
\begin{datadesc}{SND_FILENAME}
The \var{sound} parameter is the name of a WAV file.
Do not use with \constant{SND_ALIAS}.
\end{datadesc}
\begin{datadesc}{SND_ALIAS}
The \var{sound} parameter is a sound association name from the
registry. If the registry contains no such name, play the system
default sound unless \constant{SND_NODEFAULT} is also specified.
If no default sound is registered, raise \exception{RuntimeError}.
Do not use with \constant{SND_FILENAME}.
All Win32 systems support at least the following; most systems support
many more:
\begin{tableii}{l|l}{code}
{\function{PlaySound()} \var{name}}
{Corresponding Control Panel Sound name}
\lineii{'SystemAsterisk'} {Asterisk}
\lineii{'SystemExclamation'}{Exclamation}
\lineii{'SystemExit'} {Exit Windows}
\lineii{'SystemHand'} {Critical Stop}
\lineii{'SystemQuestion'} {Question}
\end{tableii}
For example:
\begin{verbatim}
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)
\end{verbatim}
\end{datadesc}
\begin{datadesc}{SND_LOOP}
Play the sound repeatedly. The \constant{SND_ASYNC} flag must also
be used to avoid blocking. Cannot be used with \constant{SND_MEMORY}.
\end{datadesc}
\begin{datadesc}{SND_MEMORY}
The \var{sound} parameter to \function{PlaySound()} is a memory
image of a WAV file, as a string.
\strong{Note:} This module does not support playing from a memory
image asynchronously, so a combination of this flag and
\constant{SND_ASYNC} will raise \exception{RuntimeError}.
\end{datadesc}
\begin{datadesc}{SND_PURGE}
Stop playing all instances of the specified sound.
\end{datadesc}
\begin{datadesc}{SND_ASYNC}
Return immediately, allowing sounds to play asynchronously.
\end{datadesc}
\begin{datadesc}{SND_NODEFAULT}
If the specified sound cannot be found, do not play the system default
sound.
\end{datadesc}
\begin{datadesc}{SND_NOSTOP}
Do not interrupt sounds currently playing.
\end{datadesc}
\begin{datadesc}{SND_NOWAIT}
Return immediately if the sound driver is busy.
\end{datadesc}