IT이야기

Python Sound ( "Bell")

cyworld 2021. 4. 17. 10:33
반응형

Python Sound ( "Bell")


비프 음을 내면서 작업이 완료되면 Python 프로그램이 경고를 받고 싶습니다. 현재 import os는 명령 줄 음성 프로그램을 사용하여 "프로세스 완료"라고 말합니다. 오히려 단순한 "종"입니다.

Cocoa에서 사용할 수있는 기능이 있다는 것을 알고 있지만,이 기능 NSBeep과 관련이별로 없다고 생각합니다.

나는 또한 시도했다

print('\a')

그러나 그것은 작동하지 않았습니다.

나는 Mac을 사용하고 있습니다. Cocoa 코멘트로 말할 수 없다면 도움이 될 것입니다.


시도해 보셨습니까?

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

Mac OS 10.5에서 저에게 적합합니다.

사실, 나는 당신의 원래 시도도 약간의 수정으로 작동한다고 생각합니다.

print('\a')

(문자 시퀀스 주위에 작은 따옴표 만 있으면됩니다).


PyObjC (Python-Objective-C 브리지)가 설치되어 있거나 OS X 10.5의 시스템 Python (PyObjC와 함께 제공됨)에서 실행중인 경우 다음을 수행 할 수 있습니다.

from AppKit import NSBeep
NSBeep()

시스템 경고를 재생합니다.


파이 게임 모듈에서 믹서를 사용해 보았는데 잘 작동합니다. 먼저 모듈을 설치하십시오.

$ sudo apt-get install python-pygame

그런 다음 프로그램에서 다음을 작성하십시오.

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

파이 게임을 사용하면 추가로 실험 할 수있는 많은 사용자 정의 옵션이 있습니다.


print('\a')작동하려면 iTerm의 활성 터미널 프로필에서 "Silence terminal bell"옵션을 꺼야 했습니다. 터미널에서 기본적으로 잘 작동하는 것 같습니다.

Mac 모듈 Carbon.Snd사용 하여 시스템 경고음을 재생할 수도 있습니다 .

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

Carbon 모듈에는 문서가 없기 때문에 help(Carbon.Snd)어떤 기능을 사용할 수 있는지 확인 하기 위해 사용해야 했습니다. Carbon에 대한 직접적인 인터페이스로 보이므로 Apple Developer Connection의 문서가 도움이 될 것입니다.


NSBeep()AppKit 의 Barry Wark의 답변을 기반으로 구축 하면 정상적으로 작동하지만 작업 표시 줄의 터미널 / 앱 아이콘이 점프합니다. 이를 NSSound()방지하고 다른 사운드를 사용할 수있는 기회를 제공 하는 몇 가지 추가 라인 :

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()

표준 사운드 파일은 명령 줄을 통해 찾을 수 있습니다.에서 locate /System/Library/Sounds/*.aiff사용하는 파일 NSBeep()'/System/Library/Sounds/Funk.aiff'

참조 URL : https://stackoverflow.com/questions/13941/python-sound-bell

반응형