| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | \section{\module{winsound} --- | 
					
						
							|  |  |  |          Sound-playing interface for Windows} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \declaremodule{builtin}{winsound} | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  |   \platform{Windows} | 
					
						
							| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | \modulesynopsis{Access to the sound-playing machinery for Windows.} | 
					
						
							|  |  |  | \moduleauthor{Toby Dickenson}{htrd90@zepler.org} | 
					
						
							|  |  |  | \sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-02-19 15:46:38 +00:00
										 |  |  | \versionadded{1.5.2} | 
					
						
							| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The \module{winsound} module provides access to the basic | 
					
						
							| 
									
										
										
										
											1999-10-22 21:08:56 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2001-02-19 07:06:36 +00:00
										 |  |  |   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 | 
					
						
							| 
									
										
										
										
											1999-10-22 21:08:56 +00:00
										 |  |  |   able to beep the speaker, \exception{RuntimeError} is raised. | 
					
						
							| 
									
										
										
										
											2001-02-19 07:06:36 +00:00
										 |  |  |   \strong{Note:}  Under Windows 95 and 98, the Windows \cfunction{Beep()} | 
					
						
							| 
									
										
										
										
											2001-02-19 08:36:41 +00:00
										 |  |  |   function exists but is useless (it ignores its arguments).  In that | 
					
						
							| 
									
										
										
										
											2001-02-19 07:06:36 +00:00
										 |  |  |   case Python simulates it via direct port manipulation (added in version | 
					
						
							|  |  |  |   2.1).  It's unknown whether that will work on all systems. | 
					
						
							| 
									
										
										
										
											2001-01-25 17:29:18 +00:00
										 |  |  |   \versionadded{1.6} | 
					
						
							| 
									
										
										
										
											1999-10-22 21:08:56 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | \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. | 
					
						
							| 
									
										
										
										
											2001-02-20 10:02:21 +00:00
										 |  |  |   Do not use with \constant{SND_ALIAS}. | 
					
						
							| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | \end{datadesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{datadesc}{SND_ALIAS} | 
					
						
							| 
									
										
										
										
											2001-02-23 19:10:41 +00:00
										 |  |  |   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}. | 
					
						
							| 
									
										
										
										
											2001-02-20 10:02:21 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   All Win32 systems support at least the following; most systems support | 
					
						
							|  |  |  |   many more: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-02-23 19:10:41 +00:00
										 |  |  | \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} | 
					
						
							| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | \end{datadesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{datadesc}{SND_LOOP} | 
					
						
							|  |  |  |   Play the sound repeatedly.  The \constant{SND_ASYNC} flag must also | 
					
						
							| 
									
										
										
										
											2001-02-20 10:02:21 +00:00
										 |  |  |   be used to avoid blocking.  Cannot be used with \constant{SND_MEMORY}. | 
					
						
							| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | \end{datadesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{datadesc}{SND_MEMORY} | 
					
						
							|  |  |  |   The \var{sound} parameter to \function{PlaySound()} is a memory | 
					
						
							| 
									
										
										
										
											2001-02-20 10:02:21 +00:00
										 |  |  |   image of a WAV file, as a string. | 
					
						
							| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   \strong{Note:}  This module does not support playing from a memory | 
					
						
							| 
									
										
										
										
											2000-07-16 19:01:10 +00:00
										 |  |  |   image asynchronously, so a combination of this flag and | 
					
						
							| 
									
										
										
										
											2001-02-23 19:10:41 +00:00
										 |  |  |   \constant{SND_ASYNC} will raise \exception{RuntimeError}. | 
					
						
							| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | \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} | 
					
						
							| 
									
										
										
										
											2001-02-20 10:02:21 +00:00
										 |  |  |   If the specified sound cannot be found, do not play the system default | 
					
						
							|  |  |  |   sound. | 
					
						
							| 
									
										
										
										
											1999-02-16 19:18:38 +00:00
										 |  |  | \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} |