Option Explicit
'Download by http://www.codefans.net
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 mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
Dim ReturnString As String * 256
Dim RetValue As Long
Dim errorstring As String * 1024
Private Sub cmdPlay_Click()
Dim CommandString As String
If Dir(App.Path & "\Test.Wav") <> "" Then
RetValue = mciSendString("open Test.Wav alias sounds1", ReturnString, 256, 0)
mciSendString "play sounds1", ReturnString, 256, 0
Else
MsgBox "没有声音文件 Test.Wav", vbOKOnly, "提示"
End If
End Sub
Private Sub cmdRecord_Click()
Dim uniqueFilename As String
uniqueFilename = "Record" & Format(Now, "yyyymmddhhnnss") & ".wav" '生成唯一的文件名,包含当前时间
RetValue = mciSendString("open new type waveaudio alias sounds1", ReturnString, 256, 0)
If RetValue = 0 Then
'开始录音...
RetValue = mciSendString("record sounds1", ReturnString, 256, 0)
cmdStop.Enabled = True
Else
mciGetErrorString RetValue, errorstring, 1024
MsgBox errorstring
End If
End Sub
Private Sub cmdStop_Click()
RetValue = mciSendString("stop sounds1", ReturnString, 256, 0)
Dim uniqueFilename As String
uniqueFilename = "Record" & Format(Now, "yyyymmddhhnnss") & ".wav" '生成唯一的文件名,包含当前时间
RetValue = mciSendString("save sounds1 " & uniqueFilename, ReturnString, 256, 0)
If RetValue = 0 Then
Else
mciGetErrorString RetValue, errorstring, 1024
MsgBox errorstring
End If
RetValue = mciSendString("close sounds1", ReturnString, 256, 0)
cmdStop.Enabled = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
mciSendString "close all", ReturnString, 256, 0
End Sub