private void StartButton_Click(object sender, RoutedEventArgs e) { string startFolder = @"C:\Users\ppras_000\Desktop\Creating Lasting Change"; DirectoryInfo di = new DirectoryInfo(startFolder); foreach (var dir in di.GetDirectories()) { foreach (var file in dir.GetFiles("*.mp3")) { using (FileStream fs = new FileStream(file.FullName, FileMode.Open)) { using (var mp3 = new Mp3Stream(fs, Mp3Permissions.ReadWrite)) { Id3Tag tag = mp3.GetTag(Id3TagFamily.Version2x); tag.Title.Value = file.Name.Substring(0, 2); tag.Album.Value = dir.Name.Substring(0, 6); mp3.WriteTag(tag); } } } } MessageBox.Show("Done"); }
/// <summary> /// http://id3.codeplex.com/ /// </summary> /// <param name="track"></param> public void getMP3Data(Track track) { var fs = new FileStream(MediaFilename, FileMode.Open, FileAccess.Read); var mp3 = new Mp3Stream(fs); Id3Tag tag = mp3.GetTag(Id3TagFamily.FileStartTag); track.title = tag.Title.Value; track.artist = tag.Artists.Value; fs.Close(); }
/// <summary> /// Retrieves either ID3V2 or Id3V1 tag /// </summary> /// <param name="mp3Stream">The MP3 stream.</param> /// <returns></returns> /// <exception cref="NullReferenceException"></exception> private Id3Tag GetTagFromStream(Mp3Stream mp3Stream) { Id3.Id3Tag tag = null; //Exit, we have no tags if (!mp3Stream.HasTags) { return(tag); } //Get the file start tag which is ID3v2 tag = mp3Stream.GetTag(Id3TagFamily.FileStartTag); if (tag == null) { tag = mp3Stream.GetTag(Id3TagFamily.FileEndTag); if (tag == null) { throw new NullReferenceException($"Couldn't parse tag for file"); } } //Get the file start tag which is ID3v2 else if (!tag.Year.IsAssigned) { var tagForYear = mp3Stream.GetTag(Id3TagFamily.FileEndTag); if (tagForYear != null) { if (tagForYear.Year.IsAssigned) { var year = tagForYear.Year.AsDateTime.Value; tag.Year.Value = Convert.ToString(year.Year); } } } return(tag); }
private string GetGenre(HttpPostedFileBase file) { var genre = string.Empty; using (var mp3 = new Mp3Stream(file.InputStream)) { Id3Tag tag = mp3.GetTag(Id3TagFamily.FileStartTag); genre = tag.Genre; Console.WriteLine("Title: {0}", tag.Title.Value); Console.WriteLine("Artist: {0}", tag.Artists.Value); Console.WriteLine("Album: {0}", tag.Album.Value); } return genre; }
public static TrackInfo GetTrackInfo(string mp3Path) { var trackInfo = new TrackInfo(); using (var currentStream = new Mp3Stream(new FileStream(mp3Path, Open, Read))) { var id3Tag = currentStream.GetTag(Id3TagFamily.FileStartTag); trackInfo.Atrist = id3Tag.Artists?.Value; trackInfo.Title = id3Tag.Title?.Value; trackInfo.Bitrate = currentStream.Audio.Bitrate; trackInfo.Duration = currentStream.Audio.Duration; trackInfo.Frequency = currentStream.Audio.Frequency; } return(trackInfo); }
public void ReadAlbumArt() { Id3Tag tag; using (FileStream stream = new FileStream(CurrentTrack.LocalPath, FileMode.Open, FileAccess.Read)) using (Mp3Stream mp3 = new Mp3Stream(stream)) tag = mp3.GetTag(Id3TagFamily.FileStartTag); BitmapImage bitmapImage; try { PictureFrame image = tag.Pictures.FirstOrDefault(); byte[] bytes = image.PictureData; try { bitmapImage = new BitmapImage(); using (MemoryStream memory = new MemoryStream(bytes)) { bitmapImage.BeginInit(); bitmapImage.StreamSource = memory; bitmapImage.CacheOption = BitmapCacheOption.OnLoad; bitmapImage.EndInit(); } ImageStretch = Stretch.UniformToFill; } catch (Exception) { bitmapImage = GetBitmapImage(new Uri("pack://application:,,,/Images/TakaneError.png", UriKind.Absolute)); ImageStretch = Stretch.None; } } catch (NullReferenceException) { bitmapImage = GetBitmapImage(new Uri("pack://application:,,,/Images/TakaneNoImage.png", UriKind.Absolute)); ImageStretch = Stretch.None; } AlbumArt = bitmapImage; }
public void ReadAlbumArt() { Id3Tag tag; using (FileStream stream = new FileStream(CurrentTrack.LocalPath, FileMode.Open, FileAccess.Read)) using (Mp3Stream mp3 = new Mp3Stream(stream)) tag = mp3.GetTag(Id3TagFamily.FileStartTag); BitmapImage bitmapImage; try { PictureFrame image = tag.Pictures.FirstOrDefault(); byte[] bytes = image.PictureData; try { bitmapImage = new BitmapImage(); using (MemoryStream memory = new MemoryStream(bytes)) { bitmapImage.BeginInit(); bitmapImage.StreamSource = memory; bitmapImage.CacheOption = BitmapCacheOption.OnLoad; bitmapImage.EndInit(); } ImageStretch = Stretch.UniformToFill; } catch (Exception) { bitmapImage = GetBitmapImage(new Uri("pack://application:,,,/Images/TakaneError.png", UriKind.Absolute)); ImageStretch = Stretch.None; } } catch (NullReferenceException) { bitmapImage = GetBitmapImage(new Uri("pack://application:,,,/Images/TakaneNoImage.png", UriKind.Absolute)); ImageStretch = Stretch.None; } AlbumArt = bitmapImage; }
public void Tag() { if (this.AudioMedia != null) { try { using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication()) { var streamFile = store.OpenFile(Path.Combine(this.MediaSupportService.GetStorageDirectory(), this.AudioMedia.FilesystemId), FileMode.Open); using (var streamMP3 = new Mp3Stream(streamFile)) { Id3Tag tag = streamMP3.GetTag(Id3TagFamily.FileStartTag); this.CurrentAlbum = tag.Album ?? string.Empty; this.CurrentArtist = tag.Artists != null ? tag.Artists.Value ?? string.Empty : string.Empty; this.SongTitle = tag.Title; } } } catch (Exception e) { this.DialogViewService.MessageBoxOk(Main.Error, MusicList.TagError); } } }