winsound — Windows용 사운드 재생 인터페이스
winsound — Windows용 사운드 재생 인터페이스
winsound 모듈은 Windows 플랫폼이 제공하는 기본적인 사운드 재생 기능에 접근하게 해 줘요. 몇 개의 함수와 상수를 포함하고 있습니다.
출처: Python 표준 라이브러리
본문
winsound 모듈은 Windows 플랫폼이 제공하는 기본적인 사운드 재생 장치에 접근하게 해 주는 모듈이에요. 함수 몇 개와 상수 여러 개를 제공합니다.
사용 가능 환경: Windows.
winsound.Beep(frequency, duration)
PC 스피커로 비프음을 냅니다. frequency 매개변수는 소리의 주파수(헤르츠)를 지정하며 37~32,767 범위여야 해요. duration 매개변수는 소리가 지속될 밀리초 수를 지정합니다. 시스템이 스피커를 울릴 수 없다면 RuntimeError가 발생해요.
winsound.PlaySound(sound, flags)
플랫폼 API의 기본 PlaySound() 함수를 호출합니다. sound 매개변수는 파일 이름, 시스템 사운드 별칭, bytes 계열 객체 형태의 오디오 데이터, 또는 None일 수 있어요. 해석은 아래 설명할 상수들의 비트 OR 조합인 flags 값에 따라 달라집니다. sound가 None이면 현재 재생 중인 웨이브폼 사운드를 멈춰요. 시스템이 오류를 알리면 RuntimeError가 발생합니다.
winsound.MessageBeep(type=MB_OK)
플랫폼 API의 기본 MessageBeep() 함수를 호출합니다. 레지스트리에 지정된 대로 사운드를 재생하죠. type 인자가 어떤 소리를 재생할지 지정하는데, 가능한 값은 -1, MB_ICONASTERISK, MB_ICONEXCLAMATION, MB_ICONHAND, MB_ICONQUESTION, MB_OK이며 모두 아래에서 설명합니다. 값 -1은 "단순 비프음(simple beep)"을 내는데, 다른 방법으로는 소리를 재생할 수 없을 때의 최종 폴백(fallback)이에요. 시스템이 오류를 알리면 RuntimeError가 발생합니다.
winsound.SND_FILENAME
sound 매개변수가 WAV 파일의 이름임을 나타냅니다. SND_ALIAS와 함께 쓰면 안 돼요.
winsound.SND_ALIAS
sound 매개변수가 레지스트리의 사운드 연결(association) 이름임을 나타냅니다. 레지스트리에 그 이름이 없으면, SND_NODEFAULT도 지정하지 않았다면 시스템 기본 소리를 재생해요. 기본 소리도 등록되어 있지 않으면 RuntimeError를 일으킵니다. SND_FILENAME과 함께 쓰면 안 됩니다.
모든 Win32 시스템은 적어도 다음을 지원하며, 대부분의 시스템은 더 많은 것을 지원해요.
PlaySound() 이름 |
대응하는 제어판 사운드 이름 |
|---|---|
'SystemAsterisk' |
Asterisk |
'SystemExclamation' |
Exclamation |
'SystemExit' |
Exit Windows |
'SystemHand' |
Critical Stop |
'SystemQuestion' |
Question |
예를 들어:
import winsound
# Windows 종료음을 재생.
winsound.PlaySound("SystemExit", winsound.SND_ALIAS)
# 등록된 소리가 있으면 Windows 기본 소리를 재생 (아마도
# "*"가 등록된 사운드 이름이 아니기 때문에).
winsound.PlaySound("*", winsound.SND_ALIAS)
winsound.SND_LOOP
소리를 반복해서 재생합니다. 블로킹을 피하려면 SND_ASYNC 플래그도 함께 써야 해요. SND_MEMORY와는 함께 쓸 수 없습니다.
winsound.SND_MEMORY
PlaySound()의 sound 매개변수가 bytes 계열 객체 형태의 WAV 파일 메모리 이미지임을 나타냅니다.
참고 — 이 모듈은 메모리 이미지를 비동기로 재생하는 것을 지원하지 않아요. 이 플래그와
SND_ASYNC를 조합하면RuntimeError가 발생합니다.
winsound.SND_PURGE
지정한 소리의 모든 인스턴스 재생을 멈춥니다.
참고 — 이 플래그는 현대 Windows 플랫폼에서 지원되지 않습니다.
winsound.SND_ASYNC
즉시 반환해 소리가 비동기로 재생되도록 합니다.
winsound.SND_NODEFAULT
지정한 소리를 찾을 수 없어도 시스템 기본 소리를 재생하지 않습니다.
winsound.SND_NOSTOP
현재 재생 중인 소리를 중단하지 않습니다.
winsound.SND_NOWAIT
사운드 드라이버가 바쁘면 즉시 반환합니다.
참고 — 이 플래그는 현대 Windows 플랫폼에서 지원되지 않습니다.
winsound.SND_APPLICATION
sound 매개변수가 레지스트리의 애플리케이션 특정 별칭임을 나타냅니다. 애플리케이션 정의 사운드 별칭을 지정하려면 SND_ALIAS 플래그와 조합할 수 있어요.
winsound.SND_SENTRY
소리가 재생될 때 SoundSentry 이벤트를 트리거합니다.
버전 3.14에서 추가됨.
winsound.SND_SYNC
소리가 동기적으로 재생됩니다. 이것이 기본 동작이에요.
버전 3.14에서 추가됨.
winsound.SND_SYSTEM
소리를 시스템 알림음용 오디오 세션에 할당합니다.
버전 3.14에서 추가됨.
MessageBox 상수 (MB_*)
MB_ICONASTERISK—SystemDefault소리를 재생합니다.MB_ICONEXCLAMATION—SystemExclamation소리를 재생합니다.MB_ICONHAND—SystemHand소리를 재생합니다.MB_ICONQUESTION—SystemQuestion소리를 재생합니다.MB_OK—SystemDefault소리를 재생합니다.MB_ICONERROR—SystemHand소리를 재생합니다. (버전 3.14에서 추가)MB_ICONINFORMATION—SystemDefault소리를 재생합니다. (버전 3.14에서 추가)MB_ICONSTOP—SystemHand소리를 재생합니다. (버전 3.14에서 추가)MB_ICONWARNING—SystemExclamation소리를 재생합니다. (버전 3.14에서 추가)