python用winsound模块播放音乐
·
刷完这60个标准库模块,成为Python骨灰级玩家
Beep
winsound是Windows的音频工具接口,可以实现简单的音频播放功能。
其中最简单的是播放正弦波,Beep,其输入为正弦波频率以及持续时间,例如
import winsound as ws
ws.Beep(440,1000)
此即播放1秒440Hz的正弦波。
MessageBeep
MessageBeep则可以调用注册表中指定的音频,这与Windows的设置有关,其输入值为
winsound. | 十进制值 |
|---|---|
| -1 | |
| MB_ICONASTERISK | 64 |
| MB_ICONEXCLAMATION | 48 |
| MB_ICONHAND | 16 |
| MB_ICONQUESTION | 32 |
| MB_OK | 0 |
当然,如果想听到这些声音,需要确保Windows主题中的声音设置并没有选择无声。
PlaySound
若想播放音乐,则可使用PlaySound(sound, flags)函数,其中sound可以为文件名或系统音频的别名,flags可选参数如下
winsound. | 数值 | 功能 |
|---|---|---|
| SND_ALIAS | 65536 | 指定系统音频别名,与SND_FILENAME冲突 |
| SND_FILENAME | 131072 | 指明WAV文件名,与SND_ALIAS冲突 |
| SND_APPLICATION | 128 | 用应用程序指定的关联来播放声音 |
| SND_ASYNC | 1 | 允许异步播放音频 |
| SND_LOOP | 8 | 循环播放,为避免阻塞,须同时使用SND_ASYNC |
| SND_MEMORY | 4 | 播放WAV文件的内存镜像,与SND_ASYNC冲突 |
| SND_NODEFAULT | 2 | 若找不到指定音频,不播放系统默认音频 |
| SND_NOSTOP | 16 | 不打断正在播放的音频 |
| SND_NOWAIT | 8192 | 若音频驱动程序已经使用,则立即返回 |
| SND_PURGE | 64 | 停止播放指定音频 |
如果想实用多个flags,则通过or来进行运算。
例如
import winsound as ws
ws.PlaySound('test.wav',SND_ASYNC or SND_FILENAME)
则可播放test.wav这个文件。
由于win10似乎并不支持SND_PURGE,所以运行之后就只能等待播放结束了。
更多推荐
所有评论(0)