您的位置:首页 > 编程语言 > C语言/C++

C语言 解析MP3信息

2011-04-13 15:29 281 查看
/*
MP3的基本歌曲信息存在了MP3文件的最后128个字节里
其结构是:
1-3 TAG 标签)
4-33 歌曲名(Take Me To Your Heart )
34-63 歌手名(Michael Learns to Rock)
64-93 专辑名(Take Me to Your Heart)
94-97 年份(2004)
98-125 备注()
126 保留位,这时为0,则说明有音轨,下一位就是音轨
127 保留位,为音轨(第几首歌)(OC)
128 保留位 (风格)(66)
*/

#include<stdio.h>
#include<stdlib.h>

typedef struct MUSIC_TITAL_INFO
{
char ID3v1TAG[3]; //TAG
char MUSIC_NAME[30]; //存储标题信息
char Artist[30]; //存储歌手信息
char Album[30]; //存储专辑信息
char YEAR[4]; //存储年代信息
char Comments[28]; //存储备注信息,28个字节(有时为30字节)
char Genre; //存储音乐风格信息,保留位,1个字节
char Reserved; //保留位,1个字节(有时没有意思
char Track; //音轨(曲号)保留位,1个字节(有时没有)
}MUSIC;

void main()
{
MUSIC m;
FILE *fp;
char ch;
if((fp=fopen("e://cometotown.mp3","r"))==NULL)
{
printf("打开文件失败!/n");
exit(1);
}
ch=fgetc(fp);
if(!fseek(fp,-128,SEEK_END))
{
fread(&m,sizeof(struct MUSIC_TITAL_INFO),1,fp);
printf("TAG: %.3s/nName: %s/nArtist: %s/nAlbum: %s/nYear: %s/nComment: %s/nGenre: %c/nReserved: %c/nTrack: %c/n",m.ID3v1TAG,m.MUSIC_NAME,m.Artist,m.YEAR,m.Album,m.Comments,m.Genre,m.Reserved,m.Track);
}
else
{
printf("读取失败!/n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: