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

版本 1.5.2 中的新Function。

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

  • winsound. Beep(频率持续时间)
    • 发出哔哔声。 * frequency *参数指定声音的频率(以赫兹为单位),并且必须在 37 到 32,767 之间。 * duration *参数指定声音应持续的毫秒数。如果系统无法发出蜂鸣声,则发出RuntimeError

1.6 版中的新Function。

  • winsound. PlaySound(声音标志)

    • 从 Platform API 调用基础PlaySound()函数。 * sound 参数可以是文件名,作为字符串的音频数据或None。它的解释取决于 flags 的值,该值可以是下面描述的常数的按位“或”组合。如果 sound *参数为None,则任何当前播放的波形声音都会停止。如果系统指示错误,则引发RuntimeError
  • winsound. MessageBeep([* type = MB_OK *])

    • 从 Platform API 调用基础MessageBeep()函数。播放注册表中指定的声音。 * type *参数指定要播放的声音;可能的值是-1MB_ICONASTERISKMB_ICONEXCLAMATIONMB_ICONHANDMB_ICONQUESTIONMB_OK,下面将进行描述。值-1会产生“简单的哔哔声”;如果无法播放声音,则这是finally的后备。

2.3 版的新Function。

  • winsound. SND_FILENAME

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

      • sound *参数是注册表中的声音关联名称。如果注册表中没有这样的名称,除非也指定了SND_NODEFAULT,否则请播放系统默认声音。如果未注册默认声音,请提高RuntimeError。请勿与SND_FILENAME一起使用。

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

PlaySound() 名称对应的控制面板声音名称
'SystemAsterisk'Asterisk
'SystemExclamation'Exclamation
'SystemExit'Exit Windows
'SystemHand'Critical Stop
'SystemQuestion'Question

For example:

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 文件的存储映像,以字符串形式。

Note

此模块不支持从内存映像异步播放,因此此标志和SND_ASYNC的组合将引发RuntimeError

  • winsound. SND_PURGE
    • 停止播放指定声音的所有实例。

Note

现代 Windows 平台不支持此标志。

  • winsound. SND_ASYNC

    • 立即返回,允许声音异步播放。
  • winsound. SND_NODEFAULT

    • 如果找不到指定的声音,请不要播放系统默认声音。
  • winsound. SND_NOSTOP

    • 不要打断当前播放的声音。
  • winsound. SND_NOWAIT

    • 如果声音驱动器正忙,请立即返回。

Note

现代 Windows 平台不支持此标志。

  • winsound. MB_ICONASTERISK

    • 播放SystemDefault声音。
  • winsound. MB_ICONEXCLAMATION

    • 播放SystemExclamation声音。
  • winsound. MB_ICONHAND

    • 播放SystemHand声音。
  • winsound. MB_ICONQUESTION

    • 播放SystemQuestion声音。
  • winsound. MB_OK

    • 播放SystemDefault声音。