34.4. winsound — Windows 用の音声再生インタフェース


winsound モジュールは Windows プラットフォーム上で提供されている基本的な音声再生機構へのアクセス手段を提供します。このモジュールではいくつかの関数と定数が定義されています。

winsound.Beep(frequency, duration)

PC のスピーカを鳴らします。引数 frequency は鳴らす音の周波数の指定で、単位は Hz です。値は 37 から 32,767 でなくてはなりません。引数 duration は音を何ミリ秒鳴らすかの指定です。システムがスピーカを鳴らすことができない場合、例外 RuntimeError が送出されます。

winsound.PlaySound(sound, flags)

プラットフォームの API から関数 PlaySound() を呼び出します。引数 sound はファイル名、音声データの文字列、または None をとり得ます。 sound の解釈は flags の値に依存します。この値は以下に述べる定数をビット単位OR して組み合わせたものになります。 sound 引数が None だった場合、現在再生中のWave形式サウンドの再生を停止します。システムのエラーが発生した場合、例外 RuntimeError が送出されます。

winsound.MessageBeep(type=MB_OK)

根底にある MessageBeep() 関数をプラットフォームの API から呼び出します。この関数は音声をレジストリの指定に従って再生します。 type 引数はどの音声を再生するかを指定します; とり得る値は -1, MB_ICONASTERISK, MB_ICONEXCLAMATION, MB_ICONHAND, MB_ICONQUESTION,および MB_OK で、全て以下に記述されています。値 -1 は “単純なビープ音” を再生します; この値は他の場合で音声を再生することができなかった際の最終的な代替音です。

winsound.SND_FILENAME

sound パラメタが WAV ファイル名であることを示します。 SND_ALIAS と同時に使ってはいけません。

winsound.SND_ALIAS

引数 sound はレジストリにある音声データに関連付けられた名前であることを示します。指定した名前がレジストリ上にない場合、定数 SND_NODEFAULT が同時に指定されていない限り、システム標準の音声データが再生されます。標準の音声データが登録されていない場合、例外 RuntimeError が送出されます。 SND_FILENAME と同時に使ってはいけません。

全ての Win32 システムは少なくとも以下の名前をサポートします; ほとんどのシステムでは他に多数あります:

PlaySound() name

対応するコントロールパネルでの音声名

'SystemAsterisk' Asterisk
'SystemExclamation' Exclamation
'SystemExit' Exit Windows
'SystemHand' Critical Stop
'SystemQuestion' Question

例えば:

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 ファイルのメモリ上のイメージであることを示します。

注釈

このモジュールはメモリ上のイメージを非同期に再生する機能をサポートしていません。従って、このフラグと 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 を再生します。