winsound —— Windows 系統的音頻播放接口?


通過(guò) winsound 模塊可訪(fǎng)問(wèn) Windows 平臺的基礎音頻播放機制。包括一些函數和幾個(gè)常量。

winsound.Beep(frequency, duration)?

讓 PC 的揚聲器發(fā)出提示音。frequency 參數可指定聲音的頻率,單位是赫茲,必須位于 37 到 32,767 之間。duration 參數則指定了聲音應持續的毫秒數。若系統無(wú)法讓揚聲器發(fā)聲,則會(huì )觸發(fā) RuntimeError。

winsound.PlaySound(sound, flags)?

由平臺 API 調用底層的 PlaySound() 函數。 參數 sound 可以是文件名、系統音頻的別名、bytes-like object 的音頻數據或``None``。 如何解釋取決于 flags 的值,可為以下常數的二進(jìn)制 OR 組合。 如果 sound 參數為 None,則當前播放的波形音頻會(huì )全部停止。如果系統報錯, 則會(huì )觸發(fā) RuntimeError。

winsound.MessageBeep(type=MB_OK)?

由平臺 API 調用底層的 MessageBeep() 函數。用于播放注冊表中指定的音頻。 type 參數指定播放的音頻;可能的值是 -1、MB_ICONASTERISK、MB_ICONEXCLAMATION、MB_ICONHAND、MB_ICONQUESTIONMB_OK,下面會(huì )介紹。值 -1 會(huì )生成一個(gè) "簡(jiǎn)單的嘀聲";若其他的音頻無(wú)法播放,這是最后的退路。如果系統報錯,則會(huì )觸發(fā) RuntimeError 。

winsound.SND_FILENAME?

參數 sound 指明 WAV 文件名。不要與 SND_ALIAS 一起使用。

winsound.SND_ALIAS?

參數 sound 是注冊表內關(guān)聯(lián)的音頻名稱(chēng)。 如果注冊表中無(wú)此名稱(chēng),則播放系統默認的聲音,除非同時(shí)設定了 SND_NODEFAULT 。 如果沒(méi)有注冊默認聲音,則會(huì )觸發(fā) RuntimeError。 請勿與 SND_FILENAME 一起使用。

所有的 Win32 系統至少支持以下音頻名稱(chēng);大多數系統支持的音頻都多于這些:

PlaySound() name 參數

對應的控制面板音頻名

'SystemAsterisk'

星號

'SystemExclamation'

感嘆號

'SystemExit'

退出 Windows

'SystemHand'

關(guān)鍵性停止

'SystemQuestion'

問(wèn)題

例如:

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 標志。不能與 SND_MEMORY 一起使用。

winsound.SND_MEMORY?

PlaySound()sound 形參是一個(gè) WAV 文件的內存鏡像,作為一個(gè) bytes-like object。

備注

本模塊不支持異步播放音頻的內存鏡像,所以該標志和 SND_ASYNC 的組合將觸發(fā) RuntimeError。

winsound.SND_PURGE?

停止播放指定音頻的所有實(shí)例。

備注

新版 Windows 平臺不支持本標志。

winsound.SND_ASYNC?

立即返回,允許異步播放音頻。

winsound.SND_NODEFAULT?

即便找不到指定的音頻,也不播放系統默認音頻。

winsound.SND_NOSTOP?

不打斷正在播放的音頻。

winsound.SND_NOWAIT?

如果音頻驅動(dòng)程序忙,則立即返回。

備注

新版 Windows 平臺不支持本標志。

winsound.MB_ICONASTERISK?

播放 SystemDefault 音頻。

winsound.MB_ICONEXCLAMATION?

播放 SystemExclamation 音頻。

winsound.MB_ICONHAND?

播放 SystemHand 音頻。

winsound.MB_ICONQUESTION?

播放 SystemQuestion 音頻。

winsound.MB_OK?

播放 SystemDefault 音頻。