• python winsound模块


    (目标:出现交易下单、结束成交、数据中断等信号的时候,PC 发出声音提醒。)

    python winsound模块

    winsound是Python的内置包,无需下载。可以直接通过 import winsound  使用。 (其他第三方库都会在Python官方的pypi.python.org网站可以下载。)

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

    1 winsound.Beep(frequency, duration)

    Beep 电脑的扬声器。 频率参数指定声音的频率(赫兹),并且必须在37到32,767的范围内。 持续时间参数指定声音应持续的毫秒数。 如果系统不能发出扬声器,则会引发 RuntimeError。

    2 winsound.MessageBeep([type=MB_OK])

    从Platform API 调用基础 MessageBeep()函数。 这会播放注册表中指定的声音。 type参数指定要播放的声音。可能的值包括-1,MB_ICONASTERISK,MB_ICONEXCLAMATION,MB_ICONHAND,MB_ICONQUESTION和MB_OK,全部在下面描述。

    值-1产生“simple beep”; 如果声音无法播放,这是最后的回退。

    import winsound
    winsound.Beep(1000,1000)
    
    def play(): # 检测文档中的possible sounds 哪些是你电脑的messageBeep
        sounds=["-1","winsound.MB_ICONASTERISK","winsound.MB_ICONEXCLAMATION","winsound.MB_ICONHAND","winsound.MB_ICONQUESTION","winsound.MB_OK"]
        for i in sounds:
            try:
                winsound.MessageBeep(eval(i))
            except RuntimeError and NameError:
                print("no {} messagebeep".format(i))
            else:
                print("has the sound flag{}".format(i))
    play()

    * eval 函数

    eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。即变量赋值时,等号右边的表示是写成字符串的格式,返回值就是这个表达式的结果。

    eval(expression[, globals[, locals]])

    expression : 表达式。

    globals : 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。

    locals : 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

    3 winsound.PlaySound(sound, flags)

    PlaySound()从平台API 调用底层函数。声音参数可以是文件名,音频数据作为一个字符串,或None。它的解释取决于标志的值,它可以是下面描述的常量的按位或运算组合。如果声音参数是None,则任何当前正在播放的波形声音都会停止。如果系统显示错误,则引发RuntimeError

    * winsound.SND_FILENAME

    支持WAV文件。该sound 参数是一个WAV文件的名称。不要与SND_ALIAS一起使用。

    * winsound.SND_ALIAS

    该声音参数是从注册表中声音的关联名称。如果注册表中不包含此类名称,则除非SND_NODEFAULT另外指定,否则请播放系统默认声音。如果没有登录默认声音,请提高RuntimeError。不要与SND_FILENAME一起使用。

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

    PlaySound() 名称

    相应的控制面板声音名称

    'SystemAsterisk'

    Asterisk

    'SystemExclamation'

    Exclamation

    'SystemExit'

    Exit Windows

    'SystemHand'

    Critical Stop

    'SystemQuestion'

    Question

    示例:

    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()是WAV文件的存储器中的图像,为一个字符串。注意这个模块不支持异步播放内存映像,所以这个标志的组合SND_ASYNC将会提升RuntimeError
    winsound.SND_PURGE

    停止播放指定声音的所有实例。注意现代Windows平台不支持此标志。

    winsound.SND_ASYNC 立即返回,允许声音异步播放。
    winsound.SND_NODEFAULT 如果找不到指定的声音,请不要播放系统默认声音。
    winsound.SND_NOSTOP 不要中断当前播放的声音。
    winsound.SND_NOWAIT

    如果声音驱动程序正忙,请立即返回。注意现代Windows平台不支持此标志。

    winsound.MB_ICONASTERISK 播放SystemDefault声音。
    winsound.MB_ICONEXCLAMATION   播放SystemExclamation声音。
    winsound.MB_ICONHAND 播放SystemHand声音。
    winsound.MB_ICONQUESTION 播放SystemQuestion声音。
    winsound.MB_OK 播放SystemDefault声音。
  • 相关阅读:
    第四次上课 PPT作业
    大道至简 读后感④
    第三次上课 PPT 课后测试
    大道至简 读后感③
    Java 02 课后作业
    Java 多个数字相加算法
    大道至简 读后感②
    wpf控件
    一个简单的prism mef例子
    c#弱事件(weak event)
  • 原文地址:https://www.cnblogs.com/JuliaZhao/p/12048103.html
Copyright © 2020-2023  润新知