Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Acceder y modificar información sobre mp3 (https://www.clubdelphi.com/foros/showthread.php?t=59149)

Cecil 14-08-2008 16:45:49

Acceder y modificar información sobre mp3
 
Hola, necesito acceder a la información acerca de un archivo mp3. Me explico, si pulsais boton derecho sobre cualquier archivo .mp3, le dais a propiedades, resumen, vereis información tal como "Intérprete", "Título del álbum", etc... ¿como puedo acceder y modificar dicha información?. Gracias y un saludo.

Khronos 14-08-2008 17:13:41

Hola, no te molestastes en buscar nada... pero claro lo más fácil es preguntar :(
En google salen miles de páginas que te dicen como hacerlo....

Un ejemplo es este:

Código Delphi [-]
type 
  TID3Tag = record
    ID: string[3];
    Titel: string[30];
    Artist: string[30];
    Album: string[30];
    Year: string[4];
    Comment: string[30];
    Genre: Byte;
  end;

const
 Genres : array[0..146] of string =
    ('Blues','Classic Rock','Country','Dance','Disco','Funk','Grunge',
    'Hip- Hop','Jazz','Metal','New Age','Oldies','Other','Pop','R&B',
    'Rap','Reggae','Rock','Techno','Industrial','Alternative','Ska',
    'Death Metal','Pranks','Soundtrack','Euro-Techno','Ambient',
    'Trip-Hop','Vocal','Jazz+Funk','Fusion','Trance','Classical',
    'Instrumental','Acid','House','Game','Sound Clip','Gospel','Noise',
    'Alternative Rock','Bass','Punk','Space','Meditative','Instrumental Pop',
    'Instrumental Rock','Ethnic','Gothic','Darkwave','Techno-Industrial','Electronic',
    'Pop-Folk','Eurodance','Dream','Southern Rock','Comedy','Cult','Gangsta',
    'Top 40','Christian Rap','Pop/Funk','Jungle','Native US','Cabaret','New Wave',
    'Psychadelic','Rave','Showtunes','Trailer','Lo-Fi','Tribal','Acid Punk',
    'Acid Jazz','Polka','Retro','Musical','Rock & Roll','Hard Rock','Folk',
    'Folk-Rock','National Folk','Swing','Fast Fusion','Bebob','Latin','Revival',
    'Celtic','Bluegrass','Avantgarde','Gothic Rock','Progressive Rock',
    'Psychedelic Rock','Symphonic Rock','Slow Rock','Big Band','Chorus',
    'Easy Listening','Acoustic','Humour','Speech','Chanson','Opera',
    'Chamber Music','Sonata','Symphony','Booty Bass','Primus','Porn Groove',
    'Satire','Slow Jam','Club','Tango','Samba','Folklore','Ballad',
    'Power Ballad','Rhytmic Soul','Freestyle','Duet','Punk Rock','Drum Solo',
    'Acapella','Euro-House','Dance Hall','Goa','Drum & Bass','Club-House',
    'Hardcore','Terror','Indie','BritPop','Negerpunk','Polsk Punk','Beat',
    'Christian Gangsta','Heavy Metal','Black Metal','Crossover','ContemporaryC',
    'Christian Rock','Merengue','Salsa','Thrash Metal','Anime','JPop','SynthPop');

function readID3Tag(FileName: string): TID3Tag; 
var 
  FS: TFileStream; 
  Buffer: array [1..128] of Char; 
begin 
  FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); 
  try 
    FS.Seek(-128, soFromEnd); 
    FS.Read(Buffer, 128); 
    with Result do  
    begin 
      ID      := Copy(Buffer, 1, 3); 
      Titel   := Copy(Buffer, 4, 30); 
      Artist  := Copy(Buffer, 34, 30); 
      Album   := Copy(Buffer, 64, 30); 
      Year    := Copy(Buffer, 94, 4); 
      Comment := Copy(Buffer, 98, 30); 
      Genre   := Ord(Buffer[128]); 
    end; 
  finally
    FS.Free; 
  end; 
end;

Para editar la información tienes que hacer el proceso inverso, pero eso ya te lo dejo a ti.

Salu2

rcarrillom 14-08-2008 21:45:15

El ejemplo anterior sirve solamente para los tags ID3v1, los mas nuevos son los ID3v2. Para hacerlo con Delphi puedes usar las Audio Tools Library, si no quieres complicaciones, hazlo con el Winamp :D

Cecil 15-08-2008 00:15:55

Gracias a los dos por vuestras respuestas. He usado las librerias recomendadas por rcarrillom y me ha ido de lujo. Un saludo.


La franja horaria es GMT +2. Ahora son las 20:32:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi