|
Language: VB4/32,VB5,VB6 Expertise: Intermediate
Jan 22, 2000
PlayAVIAudioOFF - Play an AVI file without the audio track
Private Declare Function mciSendString Lib "winmm" 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" Alias _
"mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, _
ByVal uLength As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" Alias _
"GetShortPathNameA" (ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
' Play an AVI file synchronously without the audio track.
'
' FileName is a string containing the full path of the file.
Sub PlayAVIAudioOFF(FileName As String)
Dim RetVal As Long
Dim CommandString As String
Dim ShortFileName As String * 260
Dim deviceIsOpen As Boolean
' Retrieve short file name format
RetVal = GetShortPathName(FileName, ShortFileName, Len(ShortFileName))
FileName = Left$(ShortFileName, RetVal)
' Open the device
CommandString = "Open " & FileName & " type avivideo alias AVIFile"
RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
If RetVal Then GoTo error
' remember that the device is now open
deviceIsOpen = True
' Set audio OFF
CommandString = "set AVIFile audio all off"
RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
If RetVal Then GoTo error
' Play the file
CommandString = "Play AVIFile wait"
RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
If RetVal Then GoTo error
' Close the device
CommandString = "Close AVIFile"
RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
If RetVal Then GoTo error
Exit Sub
error:
' An error occurred.
' Get the error description
Dim ErrorString As String
ErrorString = Space$(256)
mciGetErrorString RetVal, ErrorString, Len(ErrorString)
ErrorString = Left$(ErrorString, InStr(ErrorString, vbNullChar) - 1)
' close the device if necessary
If deviceIsOpen Then
CommandString = "Close AVIFile"
mciSendString CommandString, vbNullString, 0, 0&
End If
' raise a custom error, with the proper description
Err.Raise 999, , ErrorString
End Sub
Alberto Falossi
|