1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| 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
Dim sFichier As String
Dim MaxXY As String * 128
Dim MaxXY2 As String
Global VideoH As Long
Global VideoW As Long
Public Function Dureefichier(sFichier As String) As String
'On crée un buffer de 128
Dim sRetString As String * 128
On Error Resume Next
VideoH = 0: VideoW = 0
'on ferme fichier au cas où il serait ouvert
mciSendString "close sFichier", 0, 0, 0
'on ouvre le fichier passé en paramètre
mciSendString "open """ & sFichier & """ type MPEGVideo alias fichier", 0, 0, 0
'on règle le format temporel sur milliseconde
mciSendString "set fichier time format ms", 0, 0, 0
'on récupère la durée du fichier dans le buffer
mciSendString "status fichier length", sRetString, 128, 0
'On récupere les données d'hauteur et largeur de trame
mciSendString "where fichier destination", MaxXY, 128, 0
MaxXY2 = Left(MaxXY, InStr(1, MaxXY, Chr$(0)) - 1)
MaxXY2 = Trim(MaxXY2)
If Len(MaxXY2) > 1 Then
p1 = InStrRev(MaxXY2, " ")
VideoH = Val(Mid(MaxXY2, p1 + 1))
p2 = InStrRev(MaxXY2, " ", p1 - 1)
VideoW = Val(Mid(MaxXY2, p2 + 1, p1 - p2 - 1))
End If
'et enfin on ferme fichier
mciSendString "close fichier", 0, 0, 0
End Function |
Partager