protected void InfoMP(string name, string filePath) { try { Etiqueta et = new Etiqueta(); string[] ext = name.Split('.'); //If is a file MP3 if ((ext[ext.Length - 1] == "mp3") || (ext[ext.Length - 1] == "MP3")) { using (var r = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { byte first = (byte)r.ReadByte(); byte second = (byte)r.ReadByte(); byte third = (byte)r.ReadByte(); r.Seek(-128, SeekOrigin.End); byte[] data = new byte[128]; int read = r.Read(data, 0, 128); //Reset Basic Info string title = ""; string artist = ""; string album = ""; string year = ""; string comment = ""; //Add Title Info for (int i = 3; i < 33; i++) { if (data[i] != 0) { title += Convert.ToChar(data[i]); } } titulotext.Text = title; et.SetTitle(title); //Add Artist Info for (int i = 33; i < 63; i++) { if (data[i] != 0) { artist += Convert.ToChar(data[i]); } } artistatext.Text = artist; et.SetArtist(artist); //Add Album Info for (int i = 63; i < 93; i++) { if (data[i] != 0) { album += Convert.ToChar(data[i]); } } albumtext.Text = album; et.SetAlbum(album); //Add Year Info for (int i = 93; i < 97; i++) { if (data[i] != 0) { year += Convert.ToChar(data[i]); } } anyotext.Text = year; et.SetYear(year); //Add Comment Info for (int i = 97; i < 127; i++) { if (data[i] != 0) { comment += Convert.ToChar(data[i]); } } comtext.Text = comment; et.SetComment(comment); r.Close(); } //Add Genre Info TagLib.File tgFile = TagLib.File.Create(filePath); string[] toGenre = tgFile.Tag.Genres; foreach (string g in toGenre) { generotext.Text = g; et.SetGenre(g); } if (toGenre == null) { generotext.Text = string.Empty; et.SetGenre(string.Empty); } toGenre = null; //Add Track Number uint toTrack = tgFile.Tag.Track; string track = Convert.ToString(toTrack); if (track == "0") { pistatext.Text = string.Empty; et.SetNumber(string.Empty); } else { pistatext.Text = track; et.SetNumber(track); } //Add of Composer string[] toComp = tgFile.Tag.Composers; foreach (string comp in toComp) { comptext.Text = comp; et.SetComp(comp); } if (toComp == null) { comptext.Text = string.Empty; et.SetComp(string.Empty); } toComp = null; //Add of Num CD uint toNumcd = tgFile.Tag.Disc; string numcd = Convert.ToString(toNumcd); if (numcd == "0") { numtext.Text = "1"; et.SetNumcd("1"); } else { numtext.Text = numcd; et.SetNumcd(numcd); } //Add Cover CD (To PictureBox1) MemoryStream img = new MemoryStream(tgFile.Tag.Pictures[0].Data.Data); et.SetImg(img); Image bitmap = new Bitmap(et.GetImg()); pictureBox1.Image = bitmap; tgFile.Dispose(); DetectFile(name, filePath, et); } else { string message = "Error: " + name + " es un Archivo Incompatible"; string caption = "Error"; MessageBox.Show(message, caption, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } catch (Exception e) { string message = "Error: " + e.Message; string caption = "Error"; DialogResult result = MessageBox.Show(message, caption, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void vistalista_SelectedIndexChanged(object sender, EventArgs e) { try { if (vistalista.SelectedItems.Count <= 1) { if (vistalista.SelectedItems.Count == 1) { menuItem1.Enabled = true; menuItem2.Enabled = true; } else //If is zero Disabled { menuItem1.Enabled = false; menuItem2.Enabled = false; } //Cleaning... titulotext.Text = String.Empty; artistatext.Text = String.Empty; albumtext.Text = String.Empty; pistatext.Text = String.Empty; anyotext.Text = String.Empty; comtext.Text = String.Empty; generotext.Text = String.Empty; comptext.Text = String.Empty; numtext.Text = String.Empty; string filePath = vistalista.FocusedItem.SubItems[4].Text; string name = vistalista.FocusedItem.SubItems[0].Text; string[] ext = name.Split('.'); if ((ext[ext.Length - 1] == "mp3") || (ext[ext.Length - 1] == "MP3")) { Etiqueta et = new Etiqueta(); using (var r = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { byte first = (byte)r.ReadByte(); byte second = (byte)r.ReadByte(); byte third = (byte)r.ReadByte(); r.Seek(-128, SeekOrigin.End); byte[] data = new byte[128]; int read = r.Read(data, 0, 128); //Reset Basic Info string title = ""; string artist = ""; string album = ""; string year = ""; string comment = ""; //Add Title Info for (int i = 3; i < 33; i++) { if (data[i] != 0) { title += Convert.ToChar(data[i]); } } titulotext.Text = title; et.SetTitle(title); //Add Artist Info for (int i = 33; i < 63; i++) { if (data[i] != 0) { artist += Convert.ToChar(data[i]); } } artistatext.Text = artist; et.SetArtist(artist); //Add Album Info for (int i = 63; i < 93; i++) { if (data[i] != 0) { album += Convert.ToChar(data[i]); } } albumtext.Text = album; et.SetAlbum(album); //Add Year Info for (int i = 93; i < 97; i++) { if (data[i] != 0) { year += Convert.ToChar(data[i]); } } anyotext.Text = year; et.SetYear(year); //Add Comment Info for (int i = 97; i < 127; i++) { if (data[i] != 0) { comment += Convert.ToChar(data[i]); } } comtext.Text = comment; et.SetComment(comment); r.Close(); } //Add Genre Info TagLib.File tgFile = TagLib.File.Create(filePath); string[] toGenre = tgFile.Tag.Genres; foreach (string g in toGenre) { generotext.Text = g; et.SetGenre(g); } //Add Track Number uint toTrack = tgFile.Tag.Track; string track = Convert.ToString(toTrack); pistatext.Text = track; et.SetNumber(track); //Add of Composer string[] toComp = tgFile.Tag.Composers; foreach (string comp in toComp) { comptext.Text = comp; et.SetComp(comp); } //Add of Num CD uint toNumcd = tgFile.Tag.Disc; string numcd = Convert.ToString(toNumcd); numtext.Text = numcd; et.SetNumcd(numcd); //Add Cover CD (To PictureBox1) MemoryStream img = new MemoryStream(tgFile.Tag.Pictures[0].Data.Data); et.SetImg(img); Image bitmap = new Bitmap(et.GetImg()); pictureBox1.Image = bitmap; tgFile.Dispose(); } } else { //Multiple Slections Disabled for now menuItem1.Enabled = false; menuItem2.Enabled = false; titulotext.Text = "<mantener>"; artistatext.Text = "<mantener>"; albumtext.Text = "<mantener>"; pistatext.Text = "<mantener>"; anyotext.Text = "<mantener>"; comtext.Text = "<mantener>"; generotext.Text = "<mantener>"; comptext.Text = "<mantener>"; numtext.Text = "<mantener>"; } } catch (Exception e2) { string message2 = "Error: " + e2.Message; string caption2 = "Error"; DialogResult result = MessageBox.Show(message2, caption2, MessageBoxButtons.OK, MessageBoxIcon.Error); } }