サウンドの再生(T)          <TOP>


サウンドを再生します。

PlaySound WAVファイルを再生する

例では、レジストリエントリー内のサウンドを再生します。

 

 

 

 

'================================================================
'= サウンドの再生
'=    (PlaySound.bas)
'================================================================
#include "Windows.bi"

' WAVファイルを再生する 
Declare Function Api_PlaySound& Lib "winmm" Alias "PlaySoundA" (ByVal lpszName$, ByVal hModule&, ByVal dwFlags&)

#define SND_ASYNC &H1         '非同期的にサウンドを再生(再生の開始直後に制御を返す)
#define SND_LOOP &H8          'lpszSoundNameパラメータをNullに設定してsndPlaySoundを再び呼び出すまでサウンドを繰り返し再生
#define SND_MEMORY &H4        'lpszSoundNameで指定したパラメータがサウンドのメモリ内データイメージを指すポインタであることを示す
#define SND_NODEFAULT &H2     'サウンドが見つからないとき、関数はデフォルトのサウンドを再生せずに制御を返す
#define SND_NOSTOP &H10       'サウンドが現在再生中ならば、関数は要求されたサウンドを再生せず、すぐにFalseを返す
#define SND_SYNC &H0          '同期的にサウンドを再生(再生が終了するまで制御を返さない)

Var Shared Combo1 As Object
Var Shared Button1 As Object

Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14
Button1.Attach GetDLgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Combo1.AddString ".Default"
    Combo1.AddString "AppGPFault"
    Combo1.AddString "Close"
    Combo1.AddString "Maximize"
    Combo1.AddString "MenuCommand"
    Combo1.AddString "MenuPopup.Current"
    Combo1.AddString "Minimize"
    Combo1.AddString "Open"
    Combo1.AddString "RestoreDown"
    Combo1.AddString "RestoreUp"
    Combo1.AddString "SystemAsterisk"
    Combo1.AddString "SystemExclamation"
    Combo1.AddString "SystemExit"
    Combo1.AddString "SystemHand"
    Combo1.AddString "SystemQuestion"
    Combo1.AddString "SystemStart"
End Sub

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var RegEntry As String
    Var fuSound As Long
    Var Ret As Long

    'レジストリエントリを設定
    RegEntry = Combo1.GetText(Combo1.GetCursel)
    '再生方法を設定
    fuSound = SND_ASYNC Or SND_NODEFAULT
 
    'ウェーブフォームサウンドを再生
    Ret = Api_PlaySound(RegEntry, 0, fuSound)
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End