我正试图让程序给我一个哔哔声。我在一台Windows机器上。我看过http://docs.python.org/library/winsound.html
但不确定如何使用条形码扫描仪对其进行编程。
这是我的串行条码扫描器的代码。
ser = serial.Serial()
ser.baudrate = 9600
#for windows
ser.port = 2 #for COM3
ser.open()
ser.write('hello')
ser.close()
更新:因为我用哔哔声扰乱了我的同事。我可以通过耳机的音频插孔来获取它吗?
答案 0 :(得分:110)
执行此操作的跨平台方式是print '\a'
。这会将ASCII Bell字符发送到stdout,并希望产生一个蜂鸣声(一个'警报')。请注意,许多现代终端仿真器提供了忽略铃声字符的选项。
由于您使用的是Windows,因此您会很高兴听到Windows有自己的(支撑自己) Beep API ,它允许您发送任意长度和音高的哔哔声。请注意,这是一个仅限Windows的解决方案,因此您可能更喜欢print '\a'
,除非您真的关心赫兹和毫秒。
通过 winsound 模块访问Beep API:http://docs.python.org/library/winsound.html
答案 1 :(得分:107)
在Windows上,如果您只想让计算机发出哔声:
import winsound
frequency = 2500 # Set Frequency To 2500 Hertz
duration = 1000 # Set Duration To 1000 ms == 1 second
winsound.Beep(frequency, duration)
winsound.Beep()
可以在任何您想要发出哔哔声的地方使用。
答案 2 :(得分:18)
<强> Linux操作系统。强>
$ apt-get install beep
$ python
>>> os.system("beep -f 555 -l 460")
OR
$ beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 230 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460
答案 3 :(得分:10)
我正在寻找相同的但是对于Linux shell。
这个话题让我得到答案,谢谢 -
也许更多的pythonic方式:
import os
beep = lambda x: os.system("echo -n '\a';sleep 0.2;" * x)
beep(3)
注意:
os.system
而不是subprocess.Popen
以简化(可能不好)echo
的'-n'将不再显示sleep
答案 4 :(得分:4)
我为此目的做了package。
你可以像这样使用它:
from pybeep.pybeep import PyVibrate, PyBeep
PyVibrate().beep()
PyVibrate().beepn(3)
PyBeep().beep()
PyBeep().beepn(3)
它取决于sox并且仅支持python3。
答案 5 :(得分:2)
跨平台方式:
import time
import sys
for i in range(1,6):
sys.stdout.write('\r\a{i}'.format(i=i))
sys.stdout.flush()
time.sleep(1)
sys.stdout.write('\n')
答案 6 :(得分:2)
有Windows答案和Debian答案,所以这是 Mac 之一:
这假设您只是在这里寻找一种快速的方法来制作可自定义的警报声音,而不是专门在Windows上获得的压电蜂鸣声:
[T430040, T432040, T411030, CH1090, T432050, T432090, T432020, CRP040, T432070, T040060]
免责声明:如果您担心有人在窃听您的蜂鸣声代码,可以将os.system( "say beep" )
替换为对os.system
模块的调用。
答案 7 :(得分:1)
pygame
使用pygame
的优点是可以使其在任何OS平台上都能工作。 以下示例代码适用于GNU / Linux 。
首先将pygame
的{{1}}模块安装为explained in detail here。
python3
$ sudo pip3 install pygame
模块可以从任何文件位置播放pygame
和.wav
文件。这是一个示例:
.ogg
答案 8 :(得分:0)
在Linux上: print('\007')
会发出系统铃声。
答案 9 :(得分:0)
对于Windows
import os
os.system("\a")
答案 10 :(得分:-1)
# playsound in cross plate form, just install it with pip
# first install playsound > pip install playsound
from playsound import playsound
playsound('audio.mp3')