我试图用哔哔声在python中发出警笛声,但没有成功..
我正在尝试像
这样的东西winsound.Beep(700,500)
winsound.Beep(710,500)
winsound.Beep(720,500)
...
这是一个更好的方法吗?玩吧?
没有外部文件......
THX
答案 0 :(得分:3)
将高质量的警笛录制为WAV文件(Audacity是此任务的一个很好的工具,甚至可能为此提供正确的声音生成器组合)并使用PlaySound
。
winsound.PlaySound('siren.wav', winsound.SND_FILENAME)
您还可以将其作为字符串捆绑到脚本中,以避免出现单独的文件:
siren = base64.b64decode('''
<base64-encoded data>
''')
winsound.PlaySound(siren, winsound.SND_MEMORY)
要为siren
创建数据,请通过base64编码器运行WAV文件(例如,here是一个基本的命令行工具 - 下载包含win32 exe)并将输出粘贴到siren
字符串。顺便说一句,Base64不是必需的;它只是将二进制数据嵌入Python源文件的便捷方式。
答案 1 :(得分:2)
我还记得在我还是个孩子的时候在QBASIC上使用类似的东西:
DO
FOR n = -180 TO 180 STEP .1
f = 440 + 50 * SIN(n)
SOUND f, 1
NEXT
LOOP
SOUND f, 1
应与winsound.Beep
相同,具有音高和持续时间。它过去工作得很好但是因为我拿了片段here我不确定我是这样做的。
只是为了给你这个想法..