winsound
— Windows 的聲音播放介面¶
winsound
模組提供了對 Windows 平臺提供的基本聲音播放機制的訪問。它包含函式和幾個常量。
- winsound.Beep(frequency, duration)¶
使 PC 的揚聲器發出蜂鳴聲。frequency 引數指定聲音的頻率,以赫茲為單位,必須在 37 到 32,767 的範圍內。duration 引數指定聲音應持續的毫秒數。如果系統無法使揚聲器發出蜂鳴聲,則會引發
RuntimeError
。
- winsound.PlaySound(sound, flags)¶
從平臺 API 呼叫底層的
PlaySound()
函式。sound 引數可以是檔名、系統聲音別名、作為類位元組物件的音訊資料,或者None
。它的解釋取決於 flags 的值,它可以是下面描述的常量的按位或組合。如果 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 # Play Windows exit sound. winsound.PlaySound("SystemExit", winsound.SND_ALIAS) # Probably play Windows default sound, if any is registered (because # "*" probably isn't the registered name of any sound). winsound.PlaySound("*", winsound.SND_ALIAS)
- winsound.SND_LOOP¶
重複播放聲音。還必須使用
SND_ASYNC
標誌以避免阻塞。不能與SND_MEMORY
一起使用。
- winsound.SND_MEMORY¶
sound 引數到
PlaySound()
是 WAV 檔案的記憶體映像,作為類位元組物件。注意
此模組不支援從記憶體映像非同步播放,因此此標誌與
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
聲音。