Convertir une durée [Résolu]

sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 14:02 - Dernière réponse : sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention
- 16 sept. 2007 à 10:58
Bonjour tout le monde,

Alors voila, suite à mon problème précédent qui était de récupérer la durée d'un mp3, j'ai donc fait quelque recherche et j'ai trouvé la classe AudioVideoPlayBack que j'ai inclus à mon projet et j'ai donc fait un projet de test avant de le mettre dans le "vrai" projet

J'ai donc ce code :

{
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                Audio mp3 = new Audio(openFileDialog1.FileName);

                label1.Text = mp3.Duration.ToString();
            }
        }

Mais la je récupère la durée en seconde et je voudrais pouvoir la récupérer sous 00:00:00 ( heure, minute, seconde ) mais je ne sais pas comment faire pour obtenir cette forme de format...

Merci bien
Afficher la suite 

Votre réponse

32 réponses

Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 15:57
3
Merci
Sur l'instance de TimeSpan, appelée "file" dans ton exemple

Bon :

if (openFileDialog1.ShowDialog() = = DialogResult.OK)
            {
                Audio mp3 = new Audio(openFileDialog1.FileName);
               TimeSpan duree = TimeSpane.FormSeconds(mp3.Duration);
                label1.Text = duree.ToString();
            }

/*
coq
MVP Visual C#
CoqBlog
*/

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de cs_coq
Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 16 sept. 2007 à 10:33
3
Merci
L'appel de ToString sur une chaîne de caractères ne sert à rien.
Et je n'avais pas vu au premier coup, mais ta chaine de formatage ne veut rien dire, tu utilises 3 fois le nombre d'heures :

"{0:00}:{<strike>00</strike>:00}:{<strike>00</strike>:00}" => {0:00}:{1:00}:{2:00}

/*
coq
MVP Visual C#
CoqBlog
*/

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de cs_coq
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 14:56
0
Merci
Salut,

Regarde du côté de la structure TimeSpan.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 15:28
0
Merci
Merci de ta réponse, j'ai fait des recherches mais je ne trouve pas comment faire pour avoir l'affichage en heure:minutes: secondes...
Commenter la réponse de sliverman
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 15:32
0
Merci
Avec ToString.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 15:35
0
Merci
Je crois que j'ai tout faux en fesant cela :

TimeSpan file = new TimeSpan();               
 label1.Text = file.TotalMinutes.ToString();

Je ne déclare pas le fileName en plus...
Commenter la réponse de sliverman
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 15:41
0
Merci
Oui, sur l'instance de TimeSpan, pas sur le Double retourné par la propriété TotalMinutes          
 label1.Text = file.ToString();

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 15:46
0
Merci
Je ne vois pas se que tu veux dire par l'instance dans le TimeSpan...
Commenter la réponse de sliverman
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 15:56
0
Merci
Je fais ça :

TimeSpan file = new TimeSpan();               
 label1.Text = file.ToString();

Je récupère 00:00:00 dans mon label...en même temps sa paraît logique car je ne dis pas d'ouvrir le nom du fichier ouvert...
je ne sais pas comment faire
Commenter la réponse de sliverman
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 15:59
0
Merci
TimeSpan n'a rien à voir avec les fichiers ou quelleconque autre opération d'I/O, il s'agit d'une structure dédiée à la manipulation de durée, comme le dit sa description : "Représente un intervalle de temps."

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 16:03
0
Merci
Merci, ca marche impec :)
Par contre le souci c'est que je récupère 00:03:34.070000 dans mon label comment je pourrais récupérer juste 00:03:34 ?
Commenter la réponse de sliverman
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 16:09
0
Merci
Dans ce cas au lieu de TimeSpan.ToString sert toi des propriétés te donnant les différents éléments de temps pour former une chaîne de caractères à ta guise, avec String.Format par exemple.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 16:19
0
Merci
Merci de ton aide ^^
Il faut chercher dans les custom ou général ?

PS : et par la suite j'aimerai ajouter la durée dans la listView, est ce que cela sera compliqué ?

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {              
              string[] files = openFileDialog.FileNames; // la tu récupère tous les noms de fichier dans un tableau             
              foreach(string file in files) // tu parcoure 1 à 1 les fichiers trouvés
               {
                FileInfo fi = new FileInfo(file);
                ListViewItem item = new ListViewItem(fi.Name);
                double size = fi.Length / 1024;
                item.SubItems.Add(size.ToString() + " Ko"); // il faut un string en paramètre
                Audio mp3 = new Audio(openFileDialog.FileName);
                TimeSpan duree = TimeSpan.FromSeconds(mp3.Duration);
                item.SubItems.Add(duree.ToString());
                listView.Items.Add(item);         
              }
            }
Car sur cette ligne la : ( j'ai un problème avec openFileDialog.FileName, j'ai mi fi mais pareil )
Audio mp3 = new Audio(openFileDialog.FileName);
Commenter la réponse de sliverman
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 16:29
0
Merci
file ?

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 16:31
0
Merci
Non marche pas avec file,j'ai cette erreur

La DLL 'C:\WINDOWS\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll' tente une exécution managée dans le verrou du chargeur du système d'exploitation. N'essayez pas d'exécuter du code managé dans une fonction d'initialisation d'image ou DllMain, car cela risque d'entraîner un blocage de l'application.
Commenter la réponse de sliverman
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 16:40
0
Merci
http://www.thezbuffer.com/articles/304.aspx







/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 17:20
0
Merci
Comprend pas tout...mais je vois qu'il faut faire CTRL+D et apres E mais ensuite...erf
Commenter la réponse de sliverman
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 17:23
0
Merci
C'est un problème signalé par un assistant de debuggage de Visual Studio 2005 lorsque on utilise une librairie DirectX Managé .NET 1.1 dans un programme .NET 2.0.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
sliverman 83 Messages postés vendredi 17 juin 2005Date d'inscription 8 juillet 2008 Dernière intervention - 15 sept. 2007 à 17:24
0
Merci
Ah ok, et on peut l'utiliser quand même ?

PS : merci pour la rapidité de tes posts :)
Commenter la réponse de sliverman
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 sept. 2007 à 17:27
0
Merci
Logiquement oui, bien que je n'ai pas d'idée réelle des conséquences, ne connaissant pas le sujet plus que ça.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Convertir une durée - page 2