Python : 경고음 만들기
삐 소리를 내도록 프로그램을 얻으려고합니다. 나는 윈도우 머신에있다. 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()
업데이트 : 나는 경고음으로 동료를 짜증나게하고 있기 때문에. 헤드폰 용 오디오 잭을 통해받을 수 있습니까?
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()
당신이 경고음이 발생하여 원하는 목적지까지 사용할 수 있습니다.
이를 수행하는 크로스 플랫폼 방법은 print '\a'
. 그러면 ASCII Bell 문자가 stdout으로 전송되고 경고음이 발생합니다 ( '경고'). 많은 최신 터미널 에뮬레이터는 벨 문자를 무시하는 옵션을 제공합니다.
Windows를 사용하고 있기 때문에 Windows 에 임의의 길이와 피치의 경고음을 보낼 수 있는 자체 Beep API 가 있다는 사실에 기뻐할 것 입니다. 이것은 Windows 전용 솔루션이므로 print '\a'
Hertz 및 밀리 초에 대해 정말로 신경 쓰지 않는 한 선호해야합니다 .
Beep API는 winsound 모듈을 통해 액세스됩니다 . http://docs.python.org/library/winsound.html
리눅스.
$ apt-get install beep
$ python
>>> os.system("beep -f 555 -l 460")
또는
$ 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
나는 동일하지만 Linux 쉘을 찾고있었습니다.
이 주제는 저에게 답을주었습니다.-감사합니다-
아마도 더 비단뱀적인 방식 :
import os
beep = lambda x: os.system("echo -n '\a';sleep 0.2;" * x)
beep(3)
메모 :
- 수면 값 (여기서는 0.2)은 기본 경고음의 길이 (초)에 따라 다릅니다.
- 나는 단순함 을 위해
os.system
대신 사용 하기로 결정subprocess.Popen
했습니다 (나쁠 수 있음) - '-n'
echo
은 더 이상 표시되지 않는 것입니다. - 마지막 ';'
sleep
결과 텍스트 시퀀스 (* x)에 after 가 필요합니다. - 또한 X 용어에서 ssh를 통해 테스트되었습니다.
나는 그 목적을 위해 패키지 를 만들었습니다 .
다음과 같이 사용할 수 있습니다.
from pybeep.pybeep import PyVibrate, PyBeep
PyVibrate().beep()
PyVibrate().beepn(3)
PyBeep().beep()
PyBeep().beepn(3)
sox에 따라 다르며 python3 만 지원합니다.
크로스 플랫폼 방식 :
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')
Windows 답변과 Debian 답변이 있으므로 여기에 Mac이 있습니다 .
여기에서는 Windows에서 발생하는 압전 경고음이 아니라 사용자 지정 가능한 경고음을 빠르게 만드는 방법을 찾고 있다고 가정합니다.
os.system( "say beep" )
면책 조항 : 누군가가 당신의 비프 음 코드를 해킹하는 것이 걱정된다면 모듈에 os.system
대한 호출로 대체 할 수 있습니다 subprocess
.
See: How to make the hardware beep sound in Mac OS X 10.6
Using pygame
on any platform
The advantage of using pygame
is that it can be made to work on any OS platform. Below example code is for GNU/Linux though.
First install the pygame
module for python3
as explained in detail here.
$ sudo pip3 install pygame
The pygame
module can play .wav
and .ogg
files from any file location. Here is an example:
#!/usr/bin/env python3
import pygame
pygame.mixer.init()
sound = pygame.mixer.Sound('/usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga')
sound.play()
참고URL : https://stackoverflow.com/questions/6537481/python-making-a-beep-noise
'developer tip' 카테고리의 다른 글
시각적 선택의 모든 줄에 Vim 매크로 (0) | 2020.10.14 |
---|---|
VIM : Ubuntu에서 정확한 줄로 이동하는 방법 (0) | 2020.10.14 |
여러 줄 문자열을 쉼표로 구분 된 단일 문자열로 바꾸기 (0) | 2020.10.13 |
WebSockets 및 Apache 프록시 : mod_proxy_wstunnel을 구성하는 방법? (0) | 2020.10.13 |
jQuery를 사용하여 숫자 앞에 추가 0을 추가 하시겠습니까? (0) | 2020.10.13 |