如果希望在 Windows 上发出提示音,Python 2 显然提供了一个有用的功能:winsound.Beep()
.这个函数的巧妙之处在于它接受参数来指定哔声的确切频率和持续时间。这正是我想要做的,除了我不使用 Windows。所以...
winsound.Beep()
的最接近等价物是什么?对于 Linux
和 OSX
, 引入尽可能少的依赖项?
请注意,我希望能够直接对扬声器发出哔哔声,而不是播放声音文件。另外,我需要能够控制哔声的频率和持续时间,所以 curses.beep()
和 print '\a'
不会的。最后,我知道 PyGame
提供了广泛的声音功能,但鉴于我不需要 PyGame 的任何其他功能,这看起来就像使用大锤来破解坚果(无论如何,我试图尽可能地消除依赖关系)。
最佳答案
winsound 仅适用于 Windows,除了打印“/a”之外,我找不到任何跨平台方式来执行此操作。但是,您不能使用此设置频率和持续时间。
但是,您可以尝试使用 os.system 命令对系统命令 beep 执行相同操作.这是一个片段,它以独立于平台的方式定义了函数 playsound
try:
import winsound
except ImportError:
import os
def playsound(frequency,duration):
#apt-get install beep
os.system('beep -f %s -l %s' % (frequency,duration))
else:
def playsound(frequency,duration):
winsound.Beep(frequency,duration)
欲了解更多信息,请查看 this blog
编辑:您需要在 linux 上安装 beep 包才能运行 beep 命令。你可以通过给出命令来安装
sudo apt-get install beep
关于Python:与 winsound.Beep 最接近的 Linux 和 OSX 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12354586/