Próbuję sprawić, by program wydawał mi sygnał dźwiękowy. Jestem na komputerze z systemem Windows. Przejrzałem http://docs.python.org/library/winsound.html
Ale nie jestem pewien, jak mogę to zaprogramować za pomocą skanera kodów kreskowych.
Oto mój kod do seryjnego skanera kodów kreskowych.
ser = serial.Serial()
ser.baudrate = 9600
#for windows
ser.port = 2 #for COM3
ser.open()
ser.write('hello')
ser.close()
AKTUALIZACJA: Ponieważ denerwuję moich współpracowników sygnałem dźwiękowym. Czy mogę go podłączyć przez gniazdo audio do słuchawek?
python
audio
serial-port
Marc Brigham
źródło
źródło
Odpowiedzi:
W systemie Windows, jeśli chcesz, aby komputer wydawał dźwięk:
import winsound frequency = 2500 # Set Frequency To 2500 Hertz duration = 1000 # Set Duration To 1000 ms == 1 second winsound.Beep(frequency, duration)
winsound.Beep()
Może być stosowany wszędzie tam, gdzie chcesz, aby sygnał występuje.źródło
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)
. Powinienem chyba wrócić do pracy teraz: DAby to zrobić, można to zrobić na różnych platformach
print('\a')
. Spowoduje to wysłanie znaku dzwonka ASCII na standardowe wyjście i, miejmy nadzieję, wygeneruje sygnał dźwiękowy („alert”). Zwróć uwagę, że wiele nowoczesnych emulatorów terminali zapewnia opcję ignorowania znaków dzwonka.Ponieważ korzystasz z systemu Windows, z przyjemnością usłyszysz, że system Windows ma własne (przygotuj się) API sygnału dźwiękowego , które umożliwia wysyłanie sygnałów dźwiękowych o dowolnej długości i wysokości. Zauważ, że jest to rozwiązanie tylko dla systemu Windows, więc prawdopodobnie powinieneś preferować,
print('\a')
chyba że naprawdę zależy ci na hercach i milisekundach.Dostęp do Beep API można uzyskać za pośrednictwem modułu winsound : http://docs.python.org/library/winsound.html
źródło
Linux.
$ apt-get install beep $ python >>> os.system("beep -f 555 -l 460")
LUB
$ 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
źródło
os.system
jest w porządku, zwłaszcza z wartością zakodowaną na stałe, nie każdy pisze serwer WWW.-f 1047-l
, powinno być-f 1047 -l
, brak miejscaSzukałem tego samego, ale powłoki Linux.
Temat przyniósł mi odpowiedź, -dzięki-
Może bardziej pytoniczny sposób:
import os beep = lambda x: os.system("echo -n '\a';sleep 0.2;" * x) beep(3)
Uwagi:
os.system
raczej niżsubprocess.Popen
dla prostoty (może być źle)echo
oznacza, że nie ma więcej wyświetlaniasleep
jest konieczne dla wynikowej sekwencji tekstu (* x)źródło
echo
(print
), jak isleep
, więc przechodzenie przez zewnętrzne wywołania nie jest w rzeczywistości Pythonem , zwłaszcza gdy są to (nieprzenośne) wywołania systemu Unix.Jest odpowiedź Windows i odpowiedź Debiana, więc oto odpowiedź na Maca :
Zakłada się, że szukasz szybkiego sposobu na utworzenie dostosowywalnego dźwięku ostrzegawczego, a nie konkretnie sygnału piezeoelektrycznego, który otrzymujesz w systemie Windows:
os.system( "say beep" )
Zastrzeżenie: możesz zastąpić
os.system
wezwanie dosubprocess
modułu, jeśli martwisz się, że ktoś włamie się do Twojego kodu dźwiękowego.Zobacz: Jak włączyć dźwięk sprzętowy w systemie Mac OS X 10.6
źródło
Sposób międzyplatformowy:
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')
źródło
sys.stdout.write('\a')
W tym celu przygotowałem paczkę .
Możesz go używać w ten sposób:
from pybeep.pybeep import PyVibrate, PyBeep PyVibrate().beep() PyVibrate().beepn(3) PyBeep().beep() PyBeep().beepn(3)
To zależy od sox i obsługuje tylko Python3.
źródło
Korzystanie
pygame
na dowolnej platformieZaletą używania
pygame
jest to, że można go uruchomić na dowolnej platformie systemu operacyjnego. Poniższy przykładowy kod dotyczy jednak systemu GNU / Linux .Najpierw zainstaluj
pygame
modułpython3
zgodnie z opisem szczegółowo opisanym tutaj .pygame
Moduł może grać.wav
i.ogg
pliki z dowolnego miejsca pliku. Oto przykład:#!/usr/bin/env python3 import pygame pygame.mixer.init() sound = pygame.mixer.Sound('/usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga') sound.play()
źródło
W
print('\007')
systemie Linux: spowoduje, że dźwięk dzwonka systemowego.źródło