winsound —— Windows 系統的聲音播放接口?
通過 winsound 模塊可訪問 Windows 平臺的基礎音頻播放機制。包括一些函數和幾個常量。
-
winsound.Beep(frequency, duration)? 讓 PC 的揚聲器發出提示音。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 # 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? 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音頻。
