如果希望在Windows上发出哔哔声,Python 2显然提供了一个有用的功能:winsound.Beep()。此功能的好处是,它接受指定蜂鸣声确切频率和持续时间的参数。这正是我想要做的,除了我不使用Windows。所以...

对于Linux和OSX,winsound.Beep()最接近的等效项是什么,它引入了尽可能少的依赖关系?

请注意,我希望能够直接对扬声器发出蜂鸣声,而不是播放声音文件。另外,我需要能够控制提示音的频率和持续时间,因此curses.beep()print '\a'不会。最后,我知道PyGame提供了广泛的声音功能,但是鉴于我不需要PyGame的任何其他功能,因此好像使用大锤来破解螺母(无论如何,我正在尝试消除依赖项)越远越好)。

最佳答案

我在这里找到了潜在的解决方案:
http://bytes.com/topic/python/answers/25217-beeping-under-linux

它涉及直接写入/ dev / audio。不知道它的便携性,甚至根本不工作-我不在Linux机器上。

def beep(frequency, amplitude, duration):
    sample = 8000
    half_period = int(sample/frequency/2)
    beep = chr(amplitude)*half_period+chr(0)*half_period
    beep *= int(duration*frequency)
    audio = file('/dev/audio', 'wb')
    audio.write(beep)
    audio.close()

10-08 06:17