Accueil > Forum > > > > afficher la durée d'un film
afficher la durée d'un film
lundi 21 avril 2008 à 20:41:38 |
afficher la durée d'un film

Clad49
|
Salut ! Je cherche un moyen d'aaficher la durée d'un film a partir d'un fichier avi . Comment faire ? (mciSendString ? mediainfo.dll ?) merci Clad
|
|
mardi 22 avril 2008 à 07:41:01 |
Re : afficher la durée d'un film

PCPT
|
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) ++ Prenez un instant pour répondre à ce sondage svp 
|
|
mardi 22 avril 2008 à 08:02:38 |
Re : afficher la durée d'un film

PCPT
|
et voilà  http://www.codyx.org/snippet_obtenir-duree-fichier-avi_583.aspx ++ Prenez un instant pour répondre à ce sondage svp 
|
|
mardi 22 avril 2008 à 15:19:50 |
Re : afficher la durée d'un film

Clad49
|
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 DeclareFunction mciExecute Lib"winmm.dll" (ByVal lpstrCommand AsString) AsLongPrivateDeclareFunction mciSendString Lib"winmm.dll"Alias"mciSendStringA" (ByVal lpstrCommand AsString, ByVal lpstrReturnString AsString, ByVal uReturnLength AsLong, ByVal hwndCallback AsLong) AsLongFunction GetAviDuration(ByVal sPath AsString) AsLong' retourne la dur,e du fichier AVI en secondesDim sAlias AsStringDim lRet AsLongDim sBuffer AsStringsAlias = "FONCTION_MCI_" & CStr(Now)' chargementCall mciExecute("OPEN " & sPath & " TYPE AVIVIDEO ALIAS " & sAlias & " STYLE POPUP")' on r,cup¦re les ms totalessBuffer = NewString(128, vbNullChar) ' ERREUR ICI !!!!Call mciSendString("SET " & sAlias & " TIME FORMAT MS", sBuffer, Len(sBuffer), 0&)lRet = mciSendString( "STATUS " & sAlias & " LENGTH", sBuffer, Len(sBuffer), 0&)' retourGetAviDuration = Val(LeftB$(sBuffer, InStr(sBuffer, vbNullChar))) \ 1000 ' stopCall mciExecute("CLOSE " & sAlias)EndFunctionPublicSharedFunction LeftB(ByVal stTarget AsString, ByVal iByteSize AsInteger) AsStringReturn MidB(stTarget, 1, iByteSize)EndFunctionPublicSharedFunction MidB(ByVal stTarget AsString, ByVal iStart AsInteger) AsStringDim hEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS")Dim bBytes AsByte() = hEncoding.GetBytes(stTarget)Return hEncoding.GetString(bBytes, iStart - 1, bBytes.Length - iStart + 1)EndFunctionPublicSharedFunction MidB(ByVal stTarget AsString, ByVal iStart AsInteger, ByVal iByteSize AsInteger) AsStringDim hEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS")Dim bBytes AsByte() = hEncoding.GetBytes(stTarget)Return hEncoding.GetString(bBytes, iStart - 1, iByteSize)EndFunctionPublicSharedFunction RightB(ByVal stTarget AsString, ByVal iByteSize AsInteger) AsStringDim hEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS")Dim bBytes AsByte() = hEncoding.GetBytes(stTarget)Return hEncoding.GetString(bBytes, bBytes.Length - iByteSize, iByteSize)EndFunctionPrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickOpenFileDialog1.ShowDialog() MsgBox(GetAviDuration(OpenFileDialog1.SafeFileName)) EndSubJ'ai du trouver comment faire pour remplacé les leftB et les autres non connu sous net. Mais tout beug :s Clad
|
|
mardi 22 avril 2008 à 23:34:17 |
Re : afficher la durée d'un film

PCPT
|
salut, j'touche déjà pas à 2005 alors 2008..., n'en parlons même pas  avec un peu de change un dotnetien va passer ou modifier le snippet pour 2005.... désolé  bon courage Prenez un instant pour répondre à ce sondage svp 
|
|
mercredi 23 avril 2008 à 00:12:33 |
Re : afficher la durée d'un film

Clad49
|
Public Class Form1 'API Windows Multmedia . laquelle on envoit des commandes 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 Private Function DureeFichier( ByVal sFichier As String ) As String 'On cr,e un buffer de 128 Dim sRetString As String = Space(128) On Error Resume Next '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, 0) End Function 'Fonction qui renvoie la dur,e format,e ainsi 00:00:00 Private Function FormatTemps( ByVal dTemps As Double ) As String Dim lHeure As Long Dim lMinute As Long Dim lSeconde As Long Dim lTemps As Long lTemps = Math.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" ) End Function Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickOpenFileDialog1.ShowDialog() MsgBox(DureeFichier(OpenFileDialog1.SafeFileName)) End SubEnd Class Version qui fonctionne en vb 2008 Clad
|
|
mercredi 23 avril 2008 à 00:27:39 |
Re : afficher la durée d'un film

PCPT
|
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 Prenez un instant pour répondre à ce sondage svp 
|
|
mercredi 23 avril 2008 à 21:01:57 |
Re : afficher la durée d'un film

Clad49
|
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 ;)
Clad
|
|
mercredi 23 avril 2008 à 21:02:52 |
Re : afficher la durée d'un film
|
Cette discussion est classée dans : afficher, durée, film
Répondre à ce message
Sujets en rapport avec ce message
Connaitre la durée d'un Avi [ par fluminis ]
lu tous,je sais pas si je suis dans la bonne categorie mais bon je teste quand meme.Voila je cherche a recuperer la durée d'un film avi.J'utilise les
enregistrement d'une heure [ par Botanique ]
Bonjour,je travaille sous VS 2005 à la réalisation d'un logiciel de gestion de film. Dans mon Dataset, j'ai une table regroupant les données du film d
Affichade d'un AVI [ par Cjvg ]
Bonjour à tous, Je souhaiterais afficher un Film .AVI dans un controle WindowsMediaPlayer. La difficulté que je recontre c'est de l'afficher non ani
afficher image au secour [ par mich3009 ]
Bonjour,J'ai fais un programme qui gère mes films DVD en vb6, je voudrais rajouter une photo pour chaque film, mes photos sont dans un répertoire sur
afficher l'heure [ par kimat ]
salamcomment afficher l'heure dans une application vb.et
Afficher dynamiquement la valeur de la couleur pointée par la souris sur une image [ par Gnomed ]
Bonjour,Dans mon projet (en vb.net) j'affiche une image dans une picturebox, et j'aimerais pouvoir afficher la valeur de la couleur pointée par la sou
ComboBox afficher la liste des items [ par yoyolux ]
J ai un ptit probleme je n'arrive pas a afficher la liste des Items dans ma comcobox, ci-dessous le code Sub Search_Resources_QuandClic() UserFo
Recherche Base de données en VB [ par onwebdan ]
Bonjour à tous, voici ma situation.Cela fait plusieurs jours que je tourne en rond pour quelque chose qui doit pourtant être simple !!!J'ai créé une B
Recherche de shamp VB.NET + Access 2000 [ par seb57sk8 ]
Bonjours a tous et a toutes,Voila mon problème, je dispose d'une interface développé en Visual Basic (Dotnet) et d'une base de donnée Access 2000.La b
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|