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

Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Dernière intervention
3 juillet 2014
- 3 juin 2008 à 11:28 - Dernière réponse : Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Dernière intervention
3 juillet 2014
- 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 

Votre réponse

2 réponses

Meilleure réponse
Gigatrappeur
Messages postés
226
Date d'inscription
lundi 6 mai 2013
Dernière intervention
3 juillet 2014
- 6 juin 2008 à 09:29
3
Merci
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...

Merci Gigatrappeur 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Gigatrappeur
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 juin 2008 à 03:47
0
Merci
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.