历代文学网 历代文学
收录来自古今中外 20 多个朝代,近 60个 国家的作者超 3万 人,诗词曲赋、文言文等作品数近 60万 个,名句超 10万 条,著作超 2万 部。

Python实战-从菜鸟到大牛的进阶之路 作者:极客学院 近现代)

章节目录树

3 python 写报警程序中的声音实现 winsound

上一章 下一章

重复地播放声音。SND_ASYNC标识也必须被用来避免堵塞。不能用 SND_MEMORY。

MB_OK

播放 SystemHand 声音。

SND_NOSTOP

MB_ICONQUESTION

提供给 PlaySound 的 sound 参数是一个 WAV 文件的内存映像(memory image),作为一个字符串。注意:这个模块不支持从内存映像中异步播放,因此这个标识和 SND_ASYNC 的组合将挂起 RuntimeError。

import winsound

不过指定的声音没有找到,不播放系统缺省的声音。

写 windowns 下的报警程序,有一个报警声音的实现,在 python 中有个 winsound 模块可以来实现,方法也很简单:

sound 是声音文件名字,该文件为 wav 格式的。flags 为其播放的一些参数,如:

SND_PURGE

winsound.Beep(37, 2000)

SND_NODEFAULT

不中断当前播放的声音。

SND_ASYNC

MB_ICONHAND

MB_ICONASTERISK

MB_ICONEXCLAMATION

SND_MEMORY

import timeimport winsounddef play_music:    winsound.PlaySound('alert', winsound.SND_ASYNC)    time.sleep(3)   >import winsound   PlaySound(sound, flags)  

播放 SystemDefault 声音。

立即返回,允许声音异步播放。

播放 SystemExclamation 声音。

播放 SystemQuestion 声音。

SND_LOOP

SND_NOWAIT

播放 SystemDefault 声音。

如果声音驱动忙立即返回。

python 蜂鸣,通过 python 让电脑发声:

停止播放所有指定声音的实例。

37 是频率(Hz), 2000 是蜂鸣持续多少毫秒(ms).

第一个参数 frequency 表示分贝数,大小在 37 到 32767 之间。第二个参数是持续时间,以毫秒为单位

上一章 下一章