Récupérer durée d'un fichier multimédia (audio, video) [Résolu]

Gigatrappeur 226 Messages postés lundi 6 mai 2013Date d'inscription 3 juillet 2014 Dernière intervention - 3 juin 2008 à 11:28 - Dernière réponse : Gigatrappeur 226 Messages postés lundi 6 mai 2013Date d'inscription 3 juillet 2014 Dernière intervention
- 6 juin 2008 à 09:29
Salut à tous,
J'aimerais récupérer la durée d'un fichier audio ou video.
j'ai trouvé pas mal de codes mais il sont géneralement en vb6 !
Es-ce que quelqu'un sait comment faire ?

merci d'avance...
Gigatrappeur
Afficher la suite 

2 réponses

Répondre au sujet
Gigatrappeur 226 Messages postés lundi 6 mai 2013Date d'inscription 3 juillet 2014 Dernière intervention - 6 juin 2008 à 09:29
+3
Utile
Salut à tous,

Voici UN code qui permet de récupérer la durée d'un fichier avi en VB .NET (2005) :
 Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
    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
    Function GetAviDuration(ByVal sPath As String) As String
        '   retourne la durée du fichier AVI en  secondes
        Dim temps As Integer, h As Integer, m As Integer, r As Integer, s As Integer
        Dim sAlias As String, sBuffer As String, str_temps As String, heu As String, min As String, sec As String
        Dim lRet As Long
        sAlias = "FONCTION_MCI_" '& CStr(Now.Second)

        '    chargement
        Call mciExecute("OPEN " & sPath & " TYPE AVIVIDEO ALIAS " & sAlias & " STYLE POPUP")
        Dim i As Integer = Len(sPath)
        '   on récupère les ms totales
        sBuffer = New String(vbNullChar, 128&)
        Call mciSendString("SET " & sAlias & " TIME FORMAT  MS", sBuffer, Len(sBuffer), 0&)
        lRet = mciSendString("STATUS  " & sAlias & "  LENGTH", sBuffer, Len(sBuffer), 0&)

        '   retour
        GetAviDuration = Val(Microsoft.VisualBasic.Left(sBuffer, InStr(sBuffer, vbNullChar))) \ 1000

        '    stop
        Call mciExecute("CLOSE " & sAlias)

    End Function
++
ps : si quelqu'un à la doc de la dll winmm.dll...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Gigatrappeur
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 4 juin 2008 à 03:47
0
Utile
salut,
umm.... sur une dizaine de lignes çà doit pas être la mer à boire pour traduire si?

(vb6)
http://www.codyx.org/snippet_obtenir-duree-fichier-avi_583.aspx

++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Commenter la réponse de PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.