Witam mam problem z odczytaniem niektórych tagów z plików mp3. Chodzi mi o to że nie wiem jak mam określić rozmiar nazwy tagu aby można było wczytywać różne pliki mp3. Oto kod który napisałem
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing.Drawing2D;
namespace mp3
{
public partial class Form1 : Form
{
private string metoda1(BinaryReader czytaj, int ile)
{
byte[] n = new byte[ile];
czytaj.Read(n, 0, n.Length);
return Encoding.ASCII.GetString(n, 0, n.Length);//konwersacja na ASCII(stringi)
}
public Form1()
{
InitializeComponent();
}
private void wczytaj_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog plik = new OpenFileDialog();
plik.Title = "Otwieranie pliku wave";
plik.InitialDirectory = "C:\\Users\\*\\Desktop";
plik.Filter = "Pliki mp3 |*.mp3";
plik.ShowDialog();
plik.OpenFile();
scieszka.Text = plik.FileName;
BinaryReader reader = new BinaryReader(File.OpenRead(plik.FileName));
//---------------------------- Album----------------------------
byte talb = 0;
while (talb == 0)
{
if (metoda1(reader, 1) != "T") continue;
if (metoda1(reader, 1) != "A") continue;
if (metoda1(reader, 1) != "L") continue;
if (metoda1(reader, 1) != "B") continue;
if (metoda1(reader, 7) != " ")
talb = 1;
}
textBox_ALBUM.Text = metoda1(reader,17);//17
//--------------------------tytuł-------------------------------
byte tit2 = 0;
while (tit2 == 0)
{
if (metoda1(reader, 1) != "T") continue;
if (metoda1(reader, 1) != "I") continue;
if (metoda1(reader, 1) != "T") continue;
if (metoda1(reader, 1) != "2") continue;
if (metoda1(reader, 7) != " ")
tit2 = 1;
}
textBox_TYTUL.Text = metoda1(reader, 29);
//------------------------wykonawca----------------------------
byte tpe1 = 0;
while (tpe1 == 0)
{
if (metoda1(reader, 1) != "T") continue;
if (metoda1(reader, 1) != "P") continue;
if (metoda1(reader, 1) != "E") continue;
if (metoda1(reader, 1) != "1") continue;
if (metoda1(reader, 7) != " ")
tpe1 = 1;
}
textBox_WYKONAWCA.Text = metoda1(reader, 6);
}
catch
{
MessageBox.Show("Nie wybrałeś pliku");
}
}
}
}