Option Explicit 'API Windows Multmedia à laquelle on envoit des commandes 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 Sub Form_Load() Dim sFichierTest As String Dim sDureeTrouvee As String 'Pour tester, indiquez un nom de fichier multimédia (vidéo et son) sFichierTest = "D:\Documents\Mes Vidéos\MOV029.MOD" 'on récupère la durée du fichier sDureeTrouvee = DureeFichier(sFichierTest) 'on affiche le tout MsgBox "Fichier :" & vbTab & sFichierTest & vbCrLf & _ "Durée :" & vbTab & sDureeTrouvee End Sub Private Function DureeFichier(sFichier As String) As String 'On crée un buffer de 128 Dim sRetString As String * 128 On Error Resume Next 'on ferme fichier au cas où il serait ouvert mciSendString "close fichier", 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 passe cette durée à la fonction FormatTemps et on l'affecte à la valeur de notre fonction DureeFichier = FormatTemps(CDbl(Replace(sRetString, Chr(0), "") / 1000)) 'et enfin on ferme fichier mciSendString "close fichier", 0, 0, 0 End Function 'Fonction qui renvoie la durée formatée ainsi 00:00:00 Private Function FormatTemps(dTemps As Double) As String Dim lHeure As Long Dim lMinute As Long Dim lSeconde As Long Dim lTemps As Long lTemps = Round(dTemps) lHeure = Int(lTemps / 3600) lMinute = Int((lTemps - 3600 * lHeure) / 60) lSeconde = lTemps - 3600 * lHeure - 60 * lMinute FormatTemps = Format(lHeure, "00") & ":" & Format(lMinute, "00") & ":" & Format(lSeconde, "00") End Function
Private Sub Tmr_Timer() Dim mp3Position As String * 30 r = mciSendString("Set Mp3 time format milliseconds", 0, 0, 0) r = mciSendString("Status MP3 position", mp3Position, 30, 0) PrgBar.Value = CLng(mp3Position) TimeBox = Format(CLng(mp3Position), "00:00:00:000") End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionmciSendString "open """ & sFichier & """ type MPEGVideo alias fichier", 0, 0, 0
Msgbox "open """ & sFichier & """ type MPEGVideo alias fichier"
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
mciSendString "open & toto & " type MPEGVideo alias fichier", 0, 0, 0
dim r as string
r = mciSendString("Play MP3", 0&, 0, 0) Tmr.Enabled = True
dim longueur As String * 30 r = mciSendString("Open " & ton_ficvhier & " Alias MP3", 0&, 0, 0) r = mciSendString("status MP3 length",longueur, 30, 0) PrgBar.Max = CLng(longueur)
Dans la foulée, pourrais tu me dire s'il y a moyen de dimensionner une image dans une picturebox, de façon qu'elle s'adapte aux dimensions automatiquement ou est on obligé de la dimensionner en prog