winsound模块提供对Windows平台的基本声音播放功能的访问。他包含函数和一些常量。
1.导入模块
import winsound
2.winsound模块下的函数
- winsound.Beep(frequency, duration)
哔哔声PC扬声器。频率参数frequency
指定声音的频率,以Hz为单位,必须在37~32767的范围内。持续时间参数duration
指定声音应该持续的毫秒数。如果系统不能发出喇叭声,会提出RuntimeError
错误。
- winsound.PlaySound(sound, flags)
从平台API调用playsound()功能。声音参数sound
可以是文件名
、系统声音
、音频数据
,如字节类对象
,或None
。它的解释取决于标志的值,可按以下描述的常数或组合。如果声音参数flags
没有,则当前播放的波形声音停止。如果系统提示错误,RuntimeError
提出。
(1).sound参数的系统的声音
sound | 系统声音 |
---|---|
'SystemAsterisk' | Asterisk |
'SystemExclamation' | Exclamation |
'SystemExit' | Exit Windows |
'SystemHand' | Critical Stop |
'SystemQuestion' | Question |
(2).声音产生flags
- winsound.SND_FILENAME
声音参数是wav文件的名称,不能和SND_ALIAS
一起使用。
- winsound.SND_ALIAS
声音参数是来自注册表的一个关联名称。如果注册表中没有这样的名字,除非同时指定SND_NODEFAULT
是播放系统默认的声音。如果没有默认的声音注册,产生RuntimeError
错误。不能和SND_FILENAME
一起使用。
- winsound.SND_LOOP
反复播放声音。必须和SND_ASYNC
一起用来避免阻塞。不能和SND_MEMORY
一起用。
import winsound
winsound.PlaySound('SystemAsterisk',winsound.SND_LOOP|winsound.SND_ASYNC)
- winsound.SND_MEMORY
若PlaySound()
的声音参数是一个WAV文件,则把它作为一个字节一样的对象。
注意:在现代Windows平台上不支持此标志。
- winsound.SND_ASYNC
立即返回,允许声音异步播放。
- winsound.SND_NODEFAULT
如果找不到指定的声音,请不要播放系统默认声音。
- winsound.SND_NOSTOP
不要打断正在播放的声音。
- winsound.SND_NOWAIT
如果声音驱动程序忙,立即返回。
注意:在现代Windows平台上不支持此标志。
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.MessageBeep(type=MB_OK)
从平台API调用底层MessagebBeep()
功能,将播放注册表中的声音。播放的生因有类型参数指定;可能为-1
,MB_ICONASTERISK
,MB_ICONEXCLAMATION
,MB_ICONHAND
,MB_ICONQUESTION
,MB_OK
。-1
产生一个“简单的嘟嘟声”;如果声音不能播放,-1
将会是最后的回退。如果系统提示错误,RuntimeError
提出。
type | 功能 |
---|---|
MB_ICONASTERISK | 播放SystemDefault 声音 |
MB_ICONEXCLAMATION | 播放SystemExclamation 声音 |
MB_ICONHAND | 播放SystemHand 声音 |
MB_ICONQUESTION | 播放SystemQuestion 声音 |
MB_OK | 播放SystemDefault 声音 |