34.4. winsound
— 针对windows的声音播放接口¶
winsound
模块可以访问windows平台提供的基本声音播放接口.它包含以下几个函数与常量.
-
winsound.
Beep
(frequency, duration)¶ 让电脑发出"哔"的声音.frequency 参数指定声音的频率(以赫兹为单位),并且范围必须在37到32,767之间.duration 参数指定声音持续的毫秒数.若系统不能发声r,则抛出
RuntimeError
异常.
-
winsound.
PlaySound
(sound, flags)¶ 从Platform API调用底层的
PlaySound()
函数。声音参数可以是文件名,音频数据作为字符串,或None
。其解释取决于标志的值,它可以是下面描述的常量的按位或的组合。如果声音参数为None
,任何当前播放的波形声音都会停止。如果系统指示错误,则会引发RuntimeError
。
-
winsound.
MessageBeep
(type=MB_OK)¶ 从Platform API调用底层的
MessageBeep()
函数。这播放在注册表中指定的声音。类型参数指定要播放的声音;可能的值为-1
,MB_ICONASTERISK
,MB_ICONEXCLAMATION
,MB_ICONHAND
,MB_ICONQUESTION
MB_OK
,以下所有。值-1
产生“简单哔声”;这是最后的回退,如果声音不能播放否则。
-
winsound.
SND_ALIAS
¶ 声音参数是来自注册表的声音关联名称。如果注册表不包含此类名称,请播放系统默认声音,除非还指定
SND_NODEFAULT
。如果没有注册默认声音,引发RuntimeError
。不要与SND_FILENAME
配合使用。所有Win32系统至少支持以下;大多数系统支持更多:
PlaySound()
名称对应的控制面板声音名称 'SystemAsterisk'
星号 'SystemExclamation'
感叹 'SystemExit'
退出Windows 'SystemHand'
严重停止 'SystemQuestion'
题 例如:
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)
-
winsound.
SND_LOOP
¶ 反复播放声音。还必须使用
SND_ASYNC
标志来避免阻塞。不能与SND_MEMORY
配合使用。
-
winsound.
SND_MEMORY
¶ PlaySound()
的声音参数是WAV文件的存储器映像,作为字符串。注意
此模块不支持异步播放内存映像,因此此标志和
SND_ASYNC
的组合将引发RuntimeError
。
-
winsound.
SND_PURGE
¶ 停止播放指定声音的所有实例。
注意
在现代Windows平台上不支持此标志。
-
winsound.
SND_ASYNC
¶ 立即返回,允许声音异步播放。
-
winsound.
SND_NODEFAULT
¶ 如果无法找到指定的声音,请不要播放系统默认声音。
-
winsound.
SND_NOSTOP
¶ 不要打断当前正在播放的声音。
-
winsound.
SND_NOWAIT
¶ 如果声音驱动器忙,立即返回。
注意
在现代Windows平台上不支持此标志。
-
winsound.
MB_ICONASTERISK
¶ 播放
SystemDefault
声音。
-
winsound.
MB_ICONEXCLAMATION
¶ 播放
SystemExclamation
声音。
-
winsound.
MB_ICONHAND
¶ 播放
SystemHand
声音。
-
winsound.
MB_ICONQUESTION
¶ 播放
SystemQuestion
声音。
-
winsound.
MB_OK
¶ 播放
SystemDefault
声音。