Estou tentando fazer o programa emitir um som de bipe. Estou em uma máquina Windows. Eu olhei em http://docs.python.org/library/winsound.html
Mas não tenho certeza de como posso programar isso com um leitor de código de barras.
Aqui está meu código para o leitor de código de barras serial.
ser = serial.Serial()
ser.baudrate = 9600
#for windows
ser.port = 2 #for COM3
ser.open()
ser.write('hello')
ser.close()
ATUALIZAÇÃO: Já que estou irritando meus colegas de trabalho com o bipe. Posso fazer com que passe pela entrada de áudio dos fones de ouvido?
python
audio
serial-port
Marc Brigham
fonte
fonte
Respostas:
No Windows, se você quiser apenas fazer o computador emitir um bipe:
O
winsound.Beep()
pode ser usado onde você quiser que o bipe ocorra.fonte
def annoy(): for i in range(1, 10): winsound.Beep(i * 100, 200)
def sos(): for i in range(0, 3): winsound.Beep(2000, 100) for i in range(0, 3): winsound.Beep(2000, 400) for i in range(0, 3): winsound.Beep(2000, 100)
. Eu provavelmente deveria voltar ao trabalho agora: DA maneira multiplataforma de fazer isso é
print '\a'
. Isso enviará o caractere ASCII Bell para stdout e, com sorte, gerará um bipe (um para 'alerta'). Observe que muitos emuladores de terminal modernos oferecem a opção de ignorar caracteres de sino.Como você está no Windows, ficará feliz em saber que o Windows tem sua própria API de bipe (prepare-se) , que permite enviar bipes de duração e tom arbitrários. Observe que esta é uma solução somente para Windows, portanto, você provavelmente deve preferir, a
print '\a'
menos que realmente se preocupe com Hertz e milissegundos.A API Beep é acessada por meio do módulo Winsound : http://docs.python.org/library/winsound.html
fonte
Linux.
OU
fonte
os.system
está bem, especialmente com um valor codificado permanentemente, nem todo mundo está escrevendo um servidor da web.-f 1047-l
, deveria ser-f 1047 -l
, falta espaçoEu estava procurando pelo mesmo, mas pelo shell do Linux.
O tópico me trouxe uma resposta, -obrigado-
De maneira talvez mais pitônica:
Notas :
os.system
vez desubprocess.Popen
pela simplicidade (pode ser ruim)echo
é não ter mais displaysleep
é necessário para a sequência de texto resultante (* x)fonte
echo
(print
) esleep
, portanto, não é pythônico passar por chamadas externas, especialmente quando elas são chamadas Unix (não portáteis).Há uma resposta do Windows e uma resposta do Debian, então aqui está uma do Mac :
Isso pressupõe que você está apenas procurando uma maneira rápida de fazer um som de alerta personalizável, e não especificamente o bipe piezeoelétrico que você recebe no Windows:
Isenção de responsabilidade: você pode substituir
os.system
por uma chamada para osubprocess
módulo se estiver preocupado com alguém hackeando seu código de bipe.Consulte: Como fazer o hardware emitir um bipe no Mac OS X 10.6
fonte
A forma multiplataforma:
fonte
sys.stdout.write('\a')
Eu fiz um pacote para esse fim.
Você pode usá-lo assim:
Depende do sox e suporta apenas python3.
fonte
Usando
pygame
em qualquer plataformaA vantagem de usar
pygame
é que pode funcionar em qualquer plataforma de sistema operacional. O código de exemplo abaixo é para GNU / Linux .Primeiro instale o
pygame
módulopython3
conforme explicado em detalhes aqui .O
pygame
módulo pode reproduzir.wav
e.ogg
arquivos de qualquer local de arquivo. Aqui está um exemplo:fonte