2008-08-17 42 views
43

Tôi muốn có một chương trình python thông báo cho tôi khi nó đã hoàn thành nhiệm vụ của mình bằng cách tạo ra tiếng bíp. Hiện tại, tôi sử dụng import os và sau đó sử dụng chương trình phát biểu dòng lệnh để nói "Quá trình hoàn tất". Tôi đúng hơn là một "chuông" đơn giản.Âm thanh Python ("Chuông")

Tôi biết rằng có một chức năng có thể được sử dụng trong các ứng dụng Cocoa, NSBeep, nhưng tôi không nghĩ rằng có nhiều thứ liên quan đến điều này.

Tôi cũng đã thử print(\a) nhưng điều đó không hiệu quả.

Tôi đang sử dụng máy Mac, nếu bạn không thể nói bằng nhận xét về ca cao của tôi, để có thể trợ giúp.

Cảm ơn!

+6

'import os ; os.system ('say' Beer time. "'); in ('\ a \ a \ a') ' –

Trả lời

61

Các bạn đã thử:

import sys 
sys.stdout.write('\a') 
sys.stdout.flush() 

đó làm việc cho tôi ở đây trên Mac OS 10,5

Thực ra, tôi nghĩ rằng nỗ lực ban đầu của bạn cũng làm việc với một chút thay đổi:

print('\a') 

(Bạn chỉ cần các dấu nháy đơn xung quanh chuỗi ký tự).

+4

Tôi đang sử dụng ubuntu, nó không hoạt động đối với tôi. Bất kỳ ý tưởng? – kecske

+11

@kecske nó phổ biến [để vô hiệu hóa âm thanh chuông] (http://www.cyberciti.biz/faq/how-to-linux-disable-or-turn-off-beep-sound-for-terminal/) trong cấu hình đầu cuối, điều này có nghĩa là "hoạt động", nhưng không gây tiếng ồn (err, chỉ nhận thấy nhận xét của bạn đã được đăng khoảng 9 tháng trước) – dbr

+0

Hoạt động trên Windows XP (trong ứng dụng giao diện điều khiển). – martineau

5

Tôi phải tắt tùy chọn "Ngắt chuông thiết bị đầu cuối" trong Cấu hình thiết bị đầu cuối hoạt động của tôi trong iTerm cho print('\a') để hoạt động. Dường như nó hoạt động tốt theo mặc định trong Terminal.

Bạn cũng có thể sử dụng các mô-đun Mac Carbon.Snd để chơi tiếng bíp hệ thống:

>>> import Carbon.Snd 
>>> Carbon.Snd.SysBeep(1) 
>>> 

Các module Carbon không có bất kỳ tài liệu, vì vậy tôi đã phải sử dụng help(Carbon.Snd) để xem những gì các chức năng đã có sẵn. Nó có vẻ là một giao diện trực tiếp lên Carbon, vì vậy các tài liệu trên Apple Developer Connection có thể giúp đỡ.

10

Nếu bạn có PyObjC (Python - cầu Objective-C) được cài đặt hay đang chạy trên OS X hệ thống python 10,5 (mà tàu với PyObjC), bạn có thể làm

from AppKit import NSBeep 
NSBeep() 

để chơi hệ thống cảnh báo.

6

Tôi đã thử máy trộn từ mô-đun pygame và hoạt động tốt. Đầu tiên cài đặt các module:

$ sudo apt-get install python-pygame 

Sau đó, trong chương trình, hãy viết này:

from pygame import mixer 
mixer.init() #you must initialize the mixer 
alert=mixer.Sound('bell.wav') 
alert.play() 

Với pygame bạn có rất nhiều lựa chọn tùy biến, mà bạn bổ sung có thể thử nghiệm với.

1

Xây dựng dựa trên câu trả lời của Barry Wark ... NSBeep() từ AppKit hoạt động tốt, nhưng cũng làm cho biểu tượng đầu cuối/ứng dụng trong thanh tác vụ nhảy. Một vài dòng thêm với NSSound() tránh điều đó và cung cấp cho cơ hội để sử dụng một âm thanh:

from AppKit import NSSound 
#prepare sound: 
sound = NSSound.alloc() 
sound.initWithContentsOfFile_byReference_('/System/Library/Sounds/Ping.aiff', True) 
#rewind and play whenever you need it: 
sound.stop() #rewind 
sound.play() 

file âm thanh tiêu chuẩn có thể được tìm thấy thông qua dòng lệnh locate /System/Library/Sounds/*.aiff Các tập tin được sử dụng bởi NSBeep() có vẻ là '/System/Library/Sounds/Funk.aiff'

Các vấn đề liên quan