/// <summary> /// Sauvegarde les metadonnées de la musique dans le fichier /// </summary> /// <param name="musique"></param> /// <param name="metadatas"></param> /// <returns>Message d'erreur si la sauvegarde a échouée</returns> public string saveMetaForMusique(Musique musique, Metadatas metadatas) { Player.setMusique(null); string status = null; try { musique.WriteMetadatas(metadatas); } catch (Exception ex) { status = ex.Message; } //// Récupère le nouvel emplacement de la musique //string newPathNameExtension = musique.PathNameExtension; //// Memorise la position de la musique dans la liste //int oldMusiqueIndex = ListMusiques.IndexOf(musique); //// Retire la musique de la liste //ListMusiques.Remove(musique); //// Ajoute la musique avec le nouvel emplacement à la liste //Musique newMusique = addMusique(newPathNameExtension); //// Deplace la musique nouvellement ajoutée à la position mémorisée //int newMusiqueIndex = ListMusiques.IndexOf(newMusique); //ListMusiques.Move(newMusiqueIndex, oldMusiqueIndex); Player.setMusique(SelectedMusique); AllChecked = false; return(status); }
Metadatas _metaFromUser; // Renseigné par l'utilisateur public Musique(string pathNameExtension) { MetaFromFile = new Metadatas(); MetaFromFileName = new Metadatas(); MetaFromInternet = new Metadatas(); MetaFromUser = new Metadatas(); PathNameExtension = pathNameExtension; }
/// <summary> /// Ecrit les métadatas passés en paramètre dans le fichier. /// </summary> /// <param name="metadatas">Métadatas à ajouter au fichier.</param> public void WriteMetadatas(Metadatas metadatas) { if (metadatas == null) { } else { // Artiste if (metadatas.ArtistName != null) { string[] tabArtists = new string[1]; tabArtists[0] = metadatas.ArtistName; Meta.Tag.Performers = tabArtists; } // Année if ((metadatas.ReleaseDate != null && metadatas.ReleaseDate != "")) { Meta.Tag.Year = UInt32.Parse(metadatas.ReleaseDate.Split('-')[0]); } // Album if (metadatas.AlbumName != null) { Meta.Tag.Album = metadatas.AlbumName; } // Titre if (metadatas.Title != null) { Meta.Tag.Title = metadatas.Title; // Remixé par if (metadatas.RemixedBy != null && metadatas.RemixedBy.Length > 0) { Meta.Tag.Title += $" ({metadatas.RemixedBy} Remix)"; } // Edité par if (metadatas.EditBy != null && metadatas.EditBy.Length > 0) { Meta.Tag.Title += $" ({metadatas.EditBy} Edit)"; } } // Photo if (metadatas.AlbumCoverStream != null) { Picture picture = new Picture(); picture.Type = PictureType.FrontCover; picture.MimeType = System.Net.Mime.MediaTypeNames.Image.Jpeg; picture.Description = "Cover"; byte[] tabBytes = metadatas.AlbumCoverStream.ToArray(); picture.Data = new ByteVector(tabBytes); Meta.Tag.Pictures = new IPicture[] { picture };; } // On enregistre les métadatas dans le fichier Meta.Save(); this.UpdateFileName(); } }