Python 中用于 Windows 的声音播放接口 (winsound)


winsound 模块特定于在 Windows 操作系统上安装的 Python。该模块定义了以下函数:

Beep()

调用此函数时,会从 PC 的扬声器发出一声蜂鸣声。该函数需要两个参数。frequency 参数指定声音的频率,必须在 37 到 32,767 赫兹之间。duration 参数指定声音的持续时间(以毫秒为单位)。

>>> import winsound
>>> winsound.Beep(1000,500)

MessageBeep()

此函数播放注册表中指定的声音。type 参数指定要播放的声音。可能的值为:

-1、MB_ICONASTERISK、MB_ICONEXCLAMATION、MB_ICONHAND、MB_ICONQUESTION 和 MB_OK(默认值)。

值 -1 会产生“简单的蜂鸣声”。

>>> winsound.MessageBeep()

PlaySound()

此函数调用来自平台 API 的底层 PlaySound() 函数。该函数需要两个参数。sound 参数可以是文件名、系统声音别名或作为类似字节的对象的音频数据。它的解释取决于 flags 的值。标志定义如下:

SND_FILENAMEsound 参数是 WAV 文件的名称。
SND_LOOP重复播放声音。
SND_MEMORYPlaySound() 的 sound 参数是 WAV 文件的内存映像,作为类似字节的对象。
SND_ASYNC立即返回,允许声音异步播放。
SND_NODEFAULT如果找不到指定的声音,则不播放系统默认声音。
SND_NOSTOP不要中断当前正在播放的声音。

以下语句播放给定的 WAV 文件。

>>> winsound.PlaySound('sample.wav', winsound.SND_FILENAME|winsound.SND_NOWAIT)

SND_ALIAS

Windows 注册表项与声音名称相关联。如果注册表中没有此类名称,则播放系统默认声音,除非设置了 SND_NODEFAULT。所有 Win32 系统都支持以下内容:

PlaySound() 名称相应的控制面板声音名称
'SystemAsterisk'星号
'SystemExclamation'感叹号
SystemExit'退出 Windows
'SystemHand'严重错误
SystemQuestion'问号

例如,以下语句播放 Windows 退出声音。

>>> winsound.PlaySound("SystemExit", winsound.SND_ALIAS)

winsound 模块还定义了以下声音:

MB_ICONASTERISK播放 SystemDefault 声音。
MB_ICONEXCLAMATION播放 SystemExclamation 声音。
MB_ICONHAND播放 SystemHand 声音。
MB_ICONQUESTION播放 SystemQuestion 声音。
MB_OK播放 SystemDefault 声音。

更新于: 2020年6月30日

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告