Saya mencoba untuk membuat program mengeluarkan suara bip. Saya menggunakan mesin jendela. Saya telah melihat http://docs.python.org/library/winsound.html
Tetapi tidak yakin bagaimana saya dapat memprogram ini dengan pemindai kode batang.
Ini kode saya untuk pemindai kode batang serial.
ser = serial.Serial()
ser.baudrate = 9600
#for windows
ser.port = 2 #for COM3
ser.open()
ser.write('hello')
ser.close()
UPDATE: Karena saya mengganggu rekan kerja saya dengan bunyi bip. Bisakah saya mendapatkannya melalui jack audio untuk headphone?
python
audio
serial-port
Marc Brigham
sumber
sumber
Jawaban:
Di Windows, jika Anda hanya ingin membuat komputer berbunyi bip:
The
winsound.Beep()
dapat digunakan di mana pun Anda ingin bunyi bip terjadi.sumber
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)
. Saya mungkin harus kembali bekerja sekarang: DCara lintas platform untuk melakukannya adalah dengan
print('\a')
. Ini akan mengirim karakter ASCII Bell ke stdout, dan diharapkan akan menghasilkan bunyi bip (a untuk 'peringatan'). Perhatikan bahwa banyak emulator terminal modern menyediakan opsi untuk mengabaikan karakter bel.Karena Anda menggunakan Windows, Anda akan senang mendengar bahwa Windows memiliki API Bip sendiri (persiapkan diri Anda) , yang memungkinkan Anda mengirim bip dengan panjang dan nada yang berubah-ubah. Perhatikan bahwa ini adalah solusi khusus Windows, jadi Anda sebaiknya memilih
print('\a')
kecuali jika Anda benar-benar peduli tentang Hertz dan milidetik.Beep API diakses melalui modul winsound : http://docs.python.org/library/winsound.html
sumber
Linux.
ATAU
sumber
os.system
baik-baik saja, terutama dengan nilai hardcode, tidak semua orang membuat webserver.-f 1047-l
, seharusnya-f 1047 -l
, ruang hilangSaya sedang mencari yang sama tetapi untuk shell Linux.
Topik itu membawa saya pada sebuah jawaban, -terima kasih-
Mungkin cara yang lebih pythonic:
Catatan:
os.system
daripadasubprocess.Popen
untuk kesederhanaan (bisa jadi buruk)echo
tidak memiliki tampilan lagisleep
diperlukan untuk urutan teks yang dihasilkan (* x)sumber
echo
(print
) dansleep
, jadi sebenarnya bukan pythonic untuk melakukan panggilan eksternal, terutama ketika mereka adalah panggilan Unix (non-portabel).Ada jawaban Windows, dan jawaban Debian, jadi inilah jawaban Mac :
Ini mengasumsikan Anda hanya di sini mencari cara cepat untuk membuat suara peringatan yang dapat disesuaikan, dan bukan secara khusus bip piezeoelektrik yang Anda dapatkan di Windows:
Penafian: Anda dapat mengganti
os.system
dengan panggilan kesubprocess
modul jika Anda khawatir seseorang meretas kode bip Anda.Lihat: Cara membuat bunyi bip perangkat keras di Mac OS X 10.6
sumber
Cara lintas platform:
sumber
sys.stdout.write('\a')
Saya telah membuat paket untuk tujuan itu.
Anda bisa menggunakannya seperti ini:
Itu tergantung pada sox dan hanya mendukung python3.
sumber
Menggunakan
pygame
di platform apa punKeuntungan menggunakan
pygame
adalah dapat dibuat untuk bekerja pada semua platform OS. Kode contoh di bawah ini adalah untuk GNU / Linux .Pertama instal
pygame
modulpython3
seperti yang dijelaskan secara detail di sini .The
pygame
modul dapat bermain.wav
dan.ogg
file dari lokasi file. Berikut ini contohnya:sumber
Di linux:
print('\007')
akan membuat bel sistem berbunyi.sumber