bob94700
Messages postés69Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention 7 avril 2007
-
27 nov. 2003 à 23:02
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
29 avril 2009 à 20:57
Bonjour,
Je souhaite récupérer la durée d'un fichier avi. Pour cela, j'ai vu que la fonction AVIFileInfo(int, AVIFILEINFO, int) pouvait m'aider.
Donc je programme ça avec notamment la structure AVIFILEINFO. Mais j'ai un souci avec le chaine de 64 char à la fin de cette structure. J'ai fait 2 cas :
- j'ai déclaré un string, avec une longueur de 64. Bon, ça plante (même avec le try), mais au moins je peux voir en debug qu'il a lu les données :
--> Message = La référence d'objet n'est pas définie à une instance d'un objet.
- Bon, en fait, cette chaine, sous c++, j'ai vu qu'on mettait du char[64]. OK, je fait ça, et ça plante aussi (et même là, apparemment, il renvoie plus aucune données) :
Message = Informations supplémentaires : Impossible de marshaler le champ szFileType du type AutoRun.AVIFILEINFO : ce type ne peut pas être marshalé comme un champ structuré.
szFileType ==> c'est mon char[64].
Quelqu'un à une idée pour utiliser cette fonction ou une autre à me proposer pour récupérer la durée d'une vidéo ??
bob94700
Messages postés69Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention 7 avril 20074 28 nov. 2003 à 10:39
Bonjour,
J'ai trouvé autre chose qui marche.
Je lis la structure AVIMAINHEADER du fichier vidéo avec un binaryreader (à) partir de la position Seek(24, System.IO.SeekOrigin.Begin)), puis j'appelle l'api MulDiv avec les données de cet entête et j'obtiens la durée en seconde de la vidéo :