WAVファイルを再生する
1.単純な例
サウンドを非同期再生(再生中にプログラムを停止しない)する例
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long Private Const SND_ASYNC = &H1
Private Sub Command1_Click() Call PlaySound("C:\WINDOWS\Media\tada.wav", 0, SND_ASYNC)
End Sub
メモ:この方法ではメモリのサイズによってWAVファイルのサイズが制限されます。
2.
サウンドをとめる例「1.単純な例」のようにPlaySoundを使って再生しているサウンドをとめる例
Call PlaySound(vbNullString, 0, 0)
3.同期再生
再生中にプログラムを停止する例
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long Private Sub Command1_Click() Call PlaySound("C:\WINDOWS\Media\tada.wav", 0, 0)
End Sub
4.繰り返し再生
サウンドを繰り返し再生する例
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long Private Const SND_LOOP = &H8
Private Sub Command1_Click() Call PlaySound("C:\WINDOWS\Media\tada.wav", 0, SND_LOOP)
End Sub
5.非同期繰り返し再生
サウンドを非同期で繰り返し再生する例
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long Private Const SND_ASYNC = &H1
Private Const SND_LOOP = &H8Private Sub Command1_Click() Call PlaySound("C:\WINDOWS\Media\tada.wav", 0, SND_ASYNC Or SND_LOOP)
End Sub
6.汎用性のある例
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathNameA Lib "kernel32.dll" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As LongDim SoundFileName As String
'■再生
Private Sub Command1_Click()SoundFileName = GetShortFileName("C:\The Test\テスト.mp3")
Call mciSendString("Play """ & SoundFileName & """", vbNullString, 0, 0)
End Sub
'■停止
Private Sub Command2_Click()Call mciSendString("Close """ & SoundFileName & """", vbNullString, 0, 0)
End Sub
'■一時停止
Private Sub Command3_Click()Call mciSendString("Pause """ & SoundFileName & """", vbNullString, 0, 0)
End Sub
'■再開(一時停止からの再生 Playでも代替可)
Private Sub Command4_Click()Call mciSendString("Resume """ & SoundFileName & """", vbNullString, 0, 0)
End Sub
'■GetShortFileName
'■機能:長いファイル名から短いファイル名を取得する
'■例:GetShortFileName("C:\Documents and Settings\All Users\デスクトップ\Readme.txt") = "C:\DOCUME~1\ALLUSE~1\デスク~1\Readme.txt"
Private Function GetShortFileName(Path As String) As StringDim ShortPathName As String * 260
Call GetShortPathNameA(Path, ShortPathName, Len(ShortPathName))
GetShortFileName = Left(ShortPathName, InStr(ShortPathName, vbNullChar) - 1)End Function
メモ・この例ではWAVファイルだけでなくmidファイル,mp2ファイルも再生できます。Windows2000以上ではmp3も再生できます。
・詳しい使い方はテクニック 1.VBでサウンドを再生する方法を参照してください。
・一時停止機能はmidファイルの場合は使用できないようです。