Python winsound 模块
也许您刚刚开始使用Python进行编码。也许整个一开始似乎还没有定论,因为您一直在使用常规 IDE,并且希望从您的代码在相应控制台上所做的事情中获得更多信息,也许一点音乐或曲调可能会让它变得活跃起来。
本文旨在向您介绍winsound
模块,具有一组属性或功能的对象或文件,专门用于生成或播放声音或声音文件的任务。
注意: winsound
模块仅定义为在Windows平台上执行,因此命名为WINsound 。
由于 winsound 模块是内置模块,因此您无需在执行之前安装它。
基本的行动是
import winsound
- winsound.Beep()
此方法专用的功能是生成“哔”声。但是,用户需要输入声音的频率值和持续时间(这些是调用函数时需要传递的参数)。
注意:频率必须在 37 到 32,767 赫兹的范围内。
import winsound # frequency is set to 500Hz freq = 500 # duration is set to 100 milliseconds dur = 100 winsound.Beep(freq, dur)
输出:
Windows system will produce a ‘Beep’ sound with the given frequency for the given duration of time.
进一步构建上面的代码,可以通过实现“for”循环来增加频率和持续时间,从而将事情提升到另一个层次。这已在下面的代码中完成:
import winsound freq = 100 dur = 50 # loop iterates 5 times i.e, 5 beeps will be produced. for i in range(0, 5): winsound.Beep(freq, dur) freq+= 100 dur+= 50
输出:
Consecutive notes with frequency differences of 100Hz and time duration 50 milliseconds greater
than the the previous time duration are produced.- winsound.PlaySound()
使用 PlaySound函数,事情可以稍微先进一点,更不用说有趣了。请记住,此函数仅与.wav
文件兼容。函数中传递了两个参数:'filename' 和标志 - winsound.SND_FILENAME,这是平台 API 引用输出文件所必需的。标志定义如下:Flags Description SND_FILENAME The sound parameter is the name of a WAV file. SND_LOOP Play the sound repeatedly SND_MEMORY The sound parameter to PlaySound() is a memory image of a WAV file, as a bytes-like object. SND_ASYNC Return immediately, allowing sounds to play asynchronously. SND_NODEFAULT If the specified sound cannot be found, do not play the system default sound. SND_NOSTOP Do not interrupt sounds currently playing. 例子:
import winsound print("Playing the file 'Welcome.wav'") # winsound.PlaySound('filename', flag) winsound.PlaySound('Welcome.wav', winsound.SND_FILENAME)
输出:
The respective audio file named 'Welcome.wav' is executed.
- SND_ALIAS
sound 参数应解释为控制面板声音关联名称。 Windows 注册表项与声音名称相关联。如果注册表不包含此类名称,则播放系统默认声音,除非 SND_NODEFAULT。所有 Win32 系统都支持以下内容:PlaySound() name Control panel sound name SystemAsterisk Asterisk SystemExclamation Exclamation SystemExit Exit Windows SystemHand Critical Stop SystemQuestion Question 例子:
import winsound # Play Windows question sound winsound.PlaySound("SystemQuestion", winsound.SND_ALIAS)
输出:
Play Windows question sound
还有各种其他的 winsound 函数,其中大部分是特定于特定任务的,其中一些处理运行时参数。尽管如此,只要想法是四处玩弄以了解使用此模块可以完成什么,上面提到的功能就足够了。
- winsound.PlaySound()