J'essaie de recuper la durée d'un fichier video en particulier .flv ou .swf
j'ai pu traduire ce code Vb pour c++ Builder mais il ne se passe rien, ca me retourne 1.
qqn serait t'il le traduire ? ou trouver une autre solution ?
mciSendTring prend en parametre une chaine de caractere sous ".." , comment l'API l'interprete si il ya une erreur ?
j'ai verfier la liste des commande, ce n'est pas comme indiquer dans ce code ?
VB et C++ parametre different les API ? je ne pense pas
J'attend votre aide tt en cherchant de mon coté
OptionExplicit'API Windows Multmedia à laquelle on envoit des commandesPrivateDeclareFunction mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand AsString, ByVal lpstrReturnString AsString, ByVal uReturnLength AsLong, ByVal hwndCallback AsLong) AsLongPrivateSub Form_Load()Dim sFichierTest AsStringDim sDureeTrouvee AsString'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 & sDureeTrouveeEndSubPrivateFunction DureeFichier(sFichier AsString) AsString'On crée un buffer de 128Dim sRetString AsString * 128OnErrorResumeNext'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, 0EndFunction'Fonction qui renvoie la durée formatée ainsi 00:00:00PrivateFunction FormatTemps(dTemps AsDouble) AsStringDim lHeure AsLongDim lMinute AsLongDim lSeconde AsLongDim lTemps AsLong 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")EndFunctionmerci d'avance
Vegeta
merci d'avance
Vegeta