winsound
--- Windows 的音效播放介面¶
winsound
模組提供存取 Windows 平台所提供的基本音效播放機制。它包含數個函式與常數。
- winsound.Beep(frequency, duration)¶
讓電腦的喇叭發出嗶聲。frequency 參數指定音效的頻率(以赫茲為單位),範圍必須介於 37 到 32,767 之間。duration 參數指定音效持續的時間(以毫秒為單位)。若系統無法讓喇叭發出嗶聲,則會引發
RuntimeError
。
- winsound.PlaySound(sound, flags)¶
呼叫平台 API 中底層的
PlaySound()
函式。sound 參數可以是檔案名稱、系統音效別名、作為 bytes-like object 的音訊資料,或None
。其直譯方式取決於 flags 的值,該值可以是以下所述常數的位元 OR 組合。若 sound 為None
,則會停止任何正在播放的波形音效。若系統回報錯誤,則會引發RuntimeError
。
- winsound.MessageBeep(type=MB_OK)¶
呼叫平台 API 中底層的
MessageBeep()
函式。此函式會播放登錄檔中指定的音效。type 引數指定要播放的音效類型,可接受的值包括-1
、MB_ICONASTERISK
、MB_ICONEXCLAMATION
、MB_ICONHAND
、MB_ICONQUESTION
與MB_OK
,這些皆會在下文中說明。數值-1
會產生「簡單嗶聲」,當無法播放其他音效時即作為最終退路。若系統回報錯誤,則會引發RuntimeError
。
- winsound.SND_ALIAS¶
sound 參數為登錄檔中的音效關聯名稱。若登錄檔中找不到此名稱,則會播放系統預設音效,除非同時指定了
SND_NODEFAULT
。若沒有註冊預設音效,則會引發RuntimeError
。請勿與SND_FILENAME
同時使用。所有 Win32 系統至少支援以下項目;大多數系統支援更多:
PlaySound()
name對應的控制台音效名稱
'SystemAsterisk'
星號
'SystemExclamation'
驚嘆號
'SystemExit'
離開 Windows
'SystemHand'
關鍵性停止
'SystemQuestion'
問題
例如說:
import winsound # 播放 Windows 的離開音效。 winsound.PlaySound("SystemExit", winsound.SND_ALIAS) # 若有註冊預設音效,可能會播放該音效 # (因為 "*" 可能不是任何音效的註冊名稱)。 winsound.PlaySound("*", winsound.SND_ALIAS)
- winsound.SND_LOOP¶
重複播放音效。必須同時使用
SND_ASYNC
旗標以避免阻塞。不能與SND_MEMORY
一同使用。
- winsound.SND_MEMORY¶
傳入
PlaySound()
的 sound 參數是 WAV 檔案的記憶體映像,型別為 bytes-like object。備註
此模組不支援從記憶體映像非同步播放音效,因此若同時使用本旗標與
SND_ASYNC
,將引發RuntimeError
。
- winsound.SND_PURGE¶
停止播放指定音效的所有實例。
備註
此旗標在現代 Windows 平台上不支援。
- winsound.SND_ASYNC¶
立即回傳,使音效可非同步播放。
- winsound.SND_NODEFAULT¶
若找不到指定的音效,則不播放系統預設音效。
- winsound.SND_NOSTOP¶
不中斷目前正在播放的音效。
- winsound.SND_NOWAIT¶
若音效驅動程式正在忙碌,則立即回傳此。
備註
此旗標在現代 Windows 平台上不支援。
- winsound.MB_ICONASTERISK¶
播放
SystemDefault
音效。
- winsound.MB_ICONEXCLAMATION¶
播放
SystemExclamation
音效。
- winsound.MB_ICONHAND¶
播放
SystemHand
音效。
- winsound.MB_ICONQUESTION¶
播放
SystemQuestion
音效。
- winsound.MB_OK¶
播放
SystemDefault
音效。