Leer MP3 ID3 Tag con C#

Cuando vimos Gestión de Archivos en Python, desarrollamos un ejemplo que leia el ID3 Tag de un MP3. En esta ocasión, vamos a hacer lo mismo, pero utilizando C#.

El código:

OpenFileDialog fileDialogAbrir = new OpenFileDialog();
fileDialogAbrir.Filter = "Archivos MP3 (*.mp3)|*.mp3";
fileDialogAbrir.ShowDialog();

String fileMP3 = textMP3.Text = fileDialogAbrir.FileName;

//Lectura de ID3 Tag v1 y v1.1
if (fileMP3.Length> 0)
{
    FileStream fs;
    fs = new FileStream( fileMP3 , FileMode.Open);
    byte[] buffer = new byte[128];
    fs.Seek(-128, SeekOrigin.End);
    fs.Read(buffer,0, 128);
    fs.Close();

    Encoding  enc = new ASCIIEncoding();
    string id3 = enc.GetString(buffer);

    if ( id3.Substring(0,3).Equals("TAG") ) {
        textTitulo.Text     = id3.Substring( 3, 30).TrimEnd();
        textArtista.Text    = id3.Substring(33, 30).TrimEnd();
        textAlbum.Text      = id3.Substring(63, 30).TrimEnd();
        textAño.Text        = id3.Substring(934).TrimEnd();
        textComentario.Text = id3.Substring(97, 28).TrimEnd();

        if (id3[125] == 0) {
            textNumero.Text = Convert.ToString(buffer[126]);
        }

        comboGenero.SelectedIndex = Convert.ToInt16(buffer[127]);
    }
    else
    {
        MessageBox.Show("IDE3 Tag no disponible", "LuAuF", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}


El proyecto para descargar.

10 comentario en este artículoDeje el suyo
  1. Hola ,quisiera que me ayudaras amigo, quiero leer los id3 tags de “todos” mis archivos mp3 de mi compu, creo ke es exactamente lo ke pusistes pero kiero hacerlo en C++, y ir colocando cada registro o cada informacion de cada mp3 en un archivo txt, y tmb ….para empesar como le hago para decirle a mi makina por medio de mi programa ….donde estan mis archivos mp3, espero pronta respuesta ,gracias.

  2. Está buena la idea, si me ayudas lo vamos haciendo entre ambos ¿te parece?

  3. @Rocky:

    Con el permiso de Luciano (sí aprueba mi comentario :D ), espero poder contestar tu pregunta.

    Si observas el codigo C#:

    fs.Read(buffer,0, 128);

    Lo unico que hacemos es leer los primero 128 bytes del archivo y los almacenamos en el array de bytes “buffer”. Esto mismo lo podemos hacer en C usando la funcion:

    size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

    La cual esta ubicada en la libreria stdio.h, te dejo el enlace a la referencia (la cual cuenta con un ejemplo):

    http://www.cplusplus.com/reference/clibrary/cstdio/fread.html

    Lo anterior lo puedes hacer = con PHP, con Python, con Java, etc. siempre y cuando el lenguaje tenga funciones para leer archivos.

    Espero te sea de utilidad, saludos!!!

  4. Muchas gracias por el aporte!!!

    Saludos.

  5. hola, soy una chica que estudia un ciclo de Administración de sistemas informáticos y tengo que realizar un proyecto de final de ciclo
    mi idea era hacer un catalogador de CD’s de mp3, de manera que con Visual Studio 2005 y usando bases de datos SQL solucionase el problema
    quiero que al meter un cd de mp3, el programa lea los tags de los mp3 y los meta en una base de datos
    alguien podria ayudarme? es que estoy un poco perdida con todo esto del proyecto.

    Gracias!

    por cierto, pensaba hacerlo en C# y con formularios de Windows y todo eso

  6. @lisi, yo te dare una mano. Ahorita me contacto contigo por medio de email.

    Saludos.

  7. Hola muy interesate el ejemplo talvez puedas talvez expplicar como editar canciones es decir si quisiera cortar una parte de una cancion de mp3 es decir del seg 25 hasta el seg 51, o talvez alguna pagina donde pueda conseguir esta informacion gracias

  8. Que cosas habria que cambiarle pa utilizarlo en java

  9. hola que tal disculpa la molestia de casualidad no sabes como leo la duracion del mp3 y la calidad ej: 4400 Hz, 128 Kbps, ya me sirvio mucho tu post esta de lujo pero necesito sacar la duracion y la calidad para terminar un proyecto.
    un saludo.

  10. Que tal!…esta excelente el ejemplo, es lo que andaba buscando..pero no lo tienes en JAVA…necesito un ejemplo asi pero para Java….por favor espero..puedas ayudarme

Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2012

WordPress