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 ??
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 :