winsound
—— Windows 系統(tǒng)的音頻播放接口?
通過 winsound
模塊可訪問 Windows 平臺(tái)的基礎(chǔ)音頻播放機(jī)制。包括一些函數(shù)和幾個(gè)常量。
- winsound.Beep(frequency, duration)?
讓 PC 的揚(yáng)聲器發(fā)出提示音。frequency 參數(shù)可指定聲音的頻率,單位是赫茲,必須位于 37 到 32,767 之間。duration 參數(shù)則指定了聲音應(yīng)持續(xù)的毫秒數(shù)。若系統(tǒng)無法讓揚(yáng)聲器發(fā)聲,則會(huì)觸發(fā)
RuntimeError
。
- winsound.PlaySound(sound, flags)?
由平臺(tái) API 調(diào)用底層的
PlaySound()
函數(shù)。 參數(shù) sound 可以是文件名、系統(tǒng)音頻的別名、bytes-like object 的音頻數(shù)據(jù)或``None``。 如何解釋取決于 flags 的值,可為以下常數(shù)的二進(jìn)制 OR 組合。 如果 sound 參數(shù)為None
,則當(dāng)前播放的波形音頻會(huì)全部停止。如果系統(tǒng)報(bào)錯(cuò), 則會(huì)觸發(fā)RuntimeError
。
- winsound.MessageBeep(type=MB_OK)?
由平臺(tái) API 調(diào)用底層的
MessageBeep()
函數(shù)。用于播放注冊(cè)表中指定的音頻。 type 參數(shù)指定播放的音頻;可能的值是-1
、MB_ICONASTERISK
、MB_ICONEXCLAMATION
、MB_ICONHAND
、MB_ICONQUESTION
和MB_OK
,下面會(huì)介紹。值-1
會(huì)生成一個(gè) "簡單的嘀聲";若其他的音頻無法播放,這是最后的退路。如果系統(tǒng)報(bào)錯(cuò),則會(huì)觸發(fā)RuntimeError
。
- winsound.SND_ALIAS?
參數(shù) sound 是注冊(cè)表內(nèi)關(guān)聯(lián)的音頻名稱。 如果注冊(cè)表中無此名稱,則播放系統(tǒng)默認(rèn)的聲音,除非同時(shí)設(shè)定了
SND_NODEFAULT
。 如果沒有注冊(cè)默認(rèn)聲音,則會(huì)觸發(fā)RuntimeError
。 請(qǐng)勿與SND_FILENAME
一起使用。所有的 Win32 系統(tǒng)至少支持以下音頻名稱;大多數(shù)系統(tǒng)支持的音頻都多于這些:
PlaySound()
name 參數(shù)對(duì)應(yīng)的控制面板音頻名
'SystemAsterisk'
星號(hào)
'SystemExclamation'
感嘆號(hào)
'SystemExit'
退出 Windows
'SystemHand'
關(guān)鍵性停止
'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?
循環(huán)播放音頻。為避免阻塞,必須同時(shí)使用
SND_ASYNC
標(biāo)志。不能與SND_MEMORY
一起使用。
- winsound.SND_MEMORY?
PlaySound()
的 sound 形參是一個(gè) WAV 文件的內(nèi)存鏡像,作為一個(gè) bytes-like object。備注
本模塊不支持異步播放音頻的內(nèi)存鏡像,所以該標(biāo)志和
SND_ASYNC
的組合將觸發(fā)RuntimeError
。
- winsound.SND_PURGE?
停止播放指定音頻的所有實(shí)例。
備注
新版 Windows 平臺(tái)不支持本標(biāo)志。
- winsound.SND_ASYNC?
立即返回,允許異步播放音頻。
- winsound.SND_NODEFAULT?
即便找不到指定的音頻,也不播放系統(tǒng)默認(rèn)音頻。
- winsound.SND_NOSTOP?
不打斷正在播放的音頻。
- winsound.SND_NOWAIT?
如果音頻驅(qū)動(dòng)程序忙,則立即返回。
備注
新版 Windows 平臺(tái)不支持本標(biāo)志。
- winsound.MB_ICONASTERISK?
播放
SystemDefault
音頻。
- winsound.MB_ICONEXCLAMATION?
播放
SystemExclamation
音頻。
- winsound.MB_ICONHAND?
播放
SystemHand
音頻。
- winsound.MB_ICONQUESTION?
播放
SystemQuestion
音頻。
- winsound.MB_OK?
播放
SystemDefault
音頻。