DURÉE D'UN FICHIER AUDIO ET VIDÉO GRÂCE À L'API MCISENDSTRING

Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 - 18 mars 2006 à 19:36
Querieux Messages postés 8 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 22 février 2011 - 21 févr. 2011 à 18:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36608-duree-d-un-fichier-audio-et-video-grace-a-l-api-mcisendstring

Querieux Messages postés 8 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 22 février 2011
21 févr. 2011 à 18:32
Rien non plus avec type WAWAUDIO!
Querieux Messages postés 8 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 22 février 2011
21 févr. 2011 à 18:11
Bonjour,
J'ai testé avec un fichier Wav et il ni y a pas de retour de la durée..!
Il faut certainement un autre paramètre que:
type MPEGVideo alias fichier

????
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 juin 2009 à 13:54
Merci à Clementio pour ce code qui m'est bien utile.
Pour répondre à Christiansnif, j'ai eu besoin de ce code en VB2005, voici les lignes de code a changer:

Option Explicit On, a remplacer au bébut

Dim sRetString As String = Space(128) à remplacer dans la Function DureeFichier

lTemps = Math.Round(dTemps) à remplacer dans la Function FormatTemps
C'est tout et cela fonctionne.
@+ Le Pivert
christiansnif Messages postés 3 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 23 décembre 2008
11 janv. 2008 à 11:14
Je débute en VB2005
J'ai copier ce code mais ne parviens pas à le faire fonctionner
A la création du buffer de 128 une erreur "fin d'instruction attendu" alors j'ai mis "Dim Variable as string=space(128)"
A l'utilisation le programme plante à l'appel de mciSendString erreur "mciSendString à déséquilibré la pile"
J'ai l'impression d'avoir tout essayé, mais sans doute pas la bonne manoeuvre, Si tu peux m'aider. D'avance je te remercie
Snif
clementio Messages postés 432 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 février 2014 1
31 mai 2006 à 00:27
Oui, c'est ce que j'ai dit plus haut...
cs_Beotien Messages postés 2 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 30 mai 2006
30 mai 2006 à 22:36
sauf erreur de ma part le resultat est seulement valable pour des fichier encodés en CBR je ne crois pas que cela fonctionne en VBR
clementio Messages postés 432 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 février 2014 1
18 mars 2006 à 19:48
Cacophrene --> Pour ta seconde qui diffère c'est que j'utilise la fonction round de VB qui arrondi à l'entier supèrieur ou inférieur. Windows Media Player doit arrondir à l'entier inférieur tout simplement...
clementio Messages postés 432 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 février 2014 1
18 mars 2006 à 19:40
En fait, je me suis plus concentré sur des vidéos volumineuses et chez moi le temps de réponse est de 3 à 4 secondes avec AVIFileInfo. Alors que là c'est quasi instantané.

Par contre j'ai remarqué que sur des mp3 encodés en VBR, le résultat est faux. Testez et dites-moi...
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
18 mars 2006 à 19:36
Salut !

J'ai testé ton code sur une dizaine de fichiers .mp3 volumineux (des symphonies), et je dois reconnaître que l'affichage du temps est très rapide. Un seul truc amusant : pour l'un des fichiers, l'API renvoie 50:08, et le lecteur Windows Media Player 50:07. Mais bon, je n'ai trouvé ça qu'une seule fois, et puis bon on n'a rien à faire d'une seconde :D. Ce code est super. Mais juste une question : pour les deux APIs, tu as comparé les vitesses avec une API du type GetThickCount, ou bien la différence est-elle "sensiblement" visible (je veux dire facilement repérable par un être humain) ?

Cordialement,
Cacophrène