Python Sound ("Dzwonek")
Chciałbym, aby program Pythona ostrzegł mnie, gdy zakończy swoje zadanie, wydając sygnał dźwiękowy. Obecnie używam import os
, a następnie używam programu mowy z linii poleceń, aby powiedzieć " Proces zakończony."Wolę to być proste" dzwonek."
Wiem, że istnieje funkcja, która może być używana w aplikacjach Cocoa, NSBeep, ale nie sądzę, że ma to z tym wiele wspólnego.
Próbowałem teżprint(\a)
, ale to nie zadziałało.
Używam Maca, jeśli nie można powiedzieć po moim kakao skomentuj, to może pomóc.
Dzięki!5 answers
Czy próbowałeś:
import sys
sys.stdout.write('\a')
sys.stdout.flush()
To działa dla mnie tutaj na Mac OS 10.5
Właściwie, myślę, że Twoja oryginalna próba działa również z małą modyfikacją:
print('\a')
(potrzebujesz tylko pojedynczych cudzysłowów wokół sekwencji znaków).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-17 21:46:02
Jeśli masz PyObjC (Python - Objective-C bridge) zainstalowany lub uruchomiony na systemie OS X 10.5 Python (który jest dostarczany z PyObjC), możesz zrobić
from AppKit import NSBeep
NSBeep()
Aby odtworzyć alarm systemowy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 15:47:05
Próbowałem miksera z modułu pygame i działa dobrze. Najpierw zainstaluj moduł:
$ sudo apt-get install python-pygame
Następnie w programie napisz to:
from pygame import mixer
mixer.init() #you must initialize the mixer
alert=mixer.Sound('bell.wav')
alert.play()
W pygame masz wiele opcji dostosowywania, z którymi możesz dodatkowo eksperymentować.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-24 12:14:54
Musiałem wyłączyć opcję "Silence terminal bell" w moim aktywnym profilu terminala w iTerm, aby print('\a')
zadziałało. Wydawało się, że działa dobrze domyślnie w Terminalu.
Możesz również użyć modułu Mac Carbon.Snd
, aby odtworzyć sygnał dźwiękowy systemu:
>>> import Carbon.Snd
>>> Carbon.Snd.SysBeep(1)
>>>
Moduły węglowe nie mają żadnej dokumentacji, więc musiałem użyć help(Carbon.Snd)
, aby zobaczyć, jakie funkcje są dostępne. Wydaje się, że jest to bezpośredni interfejs do Carbon, więc dokumenty na Apple Developer Connection prawdopodobnie pomagają.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-17 21:56:10
Bazując na odpowiedzi Barry ' ego Warka...
NSBeep()
z AppKit działa dobrze, ale również sprawia, że terminal/app ikona w skoku paska zadań.
Kilka dodatkowych linii z NSSound()
unika tego i daje możliwość użycia innego dźwięku:
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()
Standardowe pliki dźwiękowe można znaleźć za pomocą linii poleceń locate /System/Library/Sounds/*.aiff
Plik używany przez NSBeep()
wydaje się być '/System/Library/Sounds/Funk.aiff'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-14 09:46:37