Skip to main content

34.4. winsound — Windows的声音播放界面


winsound 模块提供对由Windows平台提供的基本声音播放机器的访问。它包括函数和几个常量。

winsound.Beep(frequency, duration)

蜂鸣电脑的扬声器。 frequency 参数指定声音的频率(以赫兹为单位),并且必须在37到32,767的范围内。 duration 参数指定声音应持续的毫秒数。如果系统无法在扬声器上发出哔声,则 RuntimeError 升起。

winsound.PlaySound(sound, flags)

从Platform API调用底层 PlaySound() 函数。 sound 参数可以是文件名,系统声音别名,作为 bytes-like object 的音频数据或 None。其解释取决于 flags 的值,其可以是下面描述的常数的按位或的组合。如果 sound 参数是 None,则停止任何当前正在播放的波形声音。如果系统指示错误,则提高 RuntimeError

winsound.MessageBeep(type=MB_OK)

从Platform API调用底层 MessageBeep() 函数。这播放在注册表中指定的声音。 type 参数指定要播放的声音;可能的值是 -1MB_ICONASTERISKMB_ICONEXCLAMATIONMB_ICONHANDMB_ICONQUESTIONMB_OK,都在下面描述。值 -1 产生“简单的嘟嘟”;这是最后的回退,如果声音不能播放否则。如果系统指示错误,则提高 RuntimeError

winsound.SND_FILENAME

sound 参数是WAV文件的名称。不要与 SND_ALIAS 一起使用。

winsound.SND_ALIAS

sound 参数是来自注册表的声音关联名称。如果注册表不包含此类名称,请播放系统默认声音,除非还指定了 SND_NODEFAULT。如果未注册默认声音,请提高 RuntimeError。不要与 SND_FILENAME 一起使用。

所有Win32系统至少支持以下;大多数系统支持更多:

PlaySound() name

对应的控制面板声音名称

'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()sound 参数是WAV文件的存储器映像,作为 bytes-like object

注解

此模块不支持异步播放内存映像,因此此标志和 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 声音。