Clad49
Messages postés265Date d'inscriptiondimanche 3 août 2003StatutMembreDernière intervention29 mars 2010
-
21 avril 2008 à 20:41
Clad49
Messages postés265Date d'inscriptiondimanche 3 août 2003StatutMembreDernière intervention29 mars 2010
-
23 avril 2008 à 21:02
Salut !
Je cherche un moyen d'aaficher la durée d'un film a partir d'un fichier avi . Comment faire ?
(mciSendString ? mediainfo.dll ?)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 22 avril 2008 à 07:41
salut,
mci est approprié oui, mais de mémoire tu est obligé de commencer à le charger, donc de mettre en place le process d'ALIAS
(juste pour dire que je crois que çà ne se fera pas juste en une ligne de code)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Clad49
Messages postés265Date d'inscriptiondimanche 3 août 2003StatutMembreDernière intervention29 mars 2010 22 avril 2008 à 15:19
lut !
Mici pour ta réponce rapide (comme d'hab ;)
J'ai des petits pb a retraduire le code en vb 2008.
Voila ce que j'ai du faire :
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
Long
' retourne la dur‚e du fichier AVI en secondes
Dim sAlias
As
String
Dim lRet
As
Long
Dim sBuffer
As
StringsAlias =
"FONCTION_MCI_" &
CStr(Now)
' chargement
Call mciExecute(
"OPEN " & sPath &
" TYPE AVIVIDEO ALIAS " & sAlias &
" STYLE POPUP")
' on r‚cupŠre les ms totalessBuffer =
New
String(128, vbNullChar) ' ERREUR ICI !!!!
Call mciSendString(
"SET " & sAlias &
" TIME FORMAT MS", sBuffer, Len(sBuffer), 0&)lRet = mciSendString(
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 23 avril 2008 à 00:27
ah mais çà va pas du tout çà Clad
déjà pour l'API c'est en interger (déclaration) pour dotnet
ensuite la moitié est codé à la VB6
"on error resume next" ???
d'une part il faudrait remplacer par un catch, d'autre pourquoi veux-tu qu'il y ait une erreur, il y a un retour de l'API pour te signaler de lire l'erreur par l'API getlasterror
space(128), à mon avis çà n'existe pas en dotnet, il te faut décocher la compatibilité de langage çà doit être un stringbuilder puis var.lenght=128
(ce qui va ensuite poser problème pour le passage d'argument à l'API)
je suis certain qu'il y a bien plus DOTNET à faire que ce code
fais un tour dans les sources existantes dans le doute...
++ bonne soirée
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Clad49
Messages postés265Date d'inscriptiondimanche 3 août 2003StatutMembreDernière intervention29 mars 2010 23 avril 2008 à 21:01
salut !
En faite c un code vb6 que g trouvé sur le méme site que tu ma donnée.
Le space(128) et une chose que j'ai remplacé (origine : Dim sRetString As String * 128, pas reconnue en vb 2005 ou 2008)
Le code que j'ai posté en dernier fonctionne, je ne l'ai pas encore optimisé bientot peut étre.
Je n'ai pas trouvé d'aide plus DotNet comme tu dit ;)