sliverman
Messages postés83Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 8 juillet 2008
-
15 sept. 2007 à 14:02
sliverman
Messages postés83Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 8 juillet 2008
-
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...
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 16 sept. 2007 à 10:33
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 :
sliverman
Messages postés83Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 8 juillet 2008 15 sept. 2007 à 15:56
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
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 sept. 2007 à 15:59
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."
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 sept. 2007 à 16:09
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.
sliverman
Messages postés83Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 8 juillet 2008 15 sept. 2007 à 16:19
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);
sliverman
Messages postés83Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention 8 juillet 2008 15 sept. 2007 à 16:31
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.
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 sept. 2007 à 17:23
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.