加载中…
个人资料
wanghe334
wanghe334
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,572
  • 关注人气:62
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言读取MP3的信息

(2008-10-29 11:59:17)
标签:

c语言

mp3

王鹤

杂谈

                                      C语言读取MP3的信息

                                          作者:王鹤  QQ:583241212

  标准MP3的音乐,在文件的最后128个字节就来存放MP3的信息的,只要打开读出来就行了,用C语言来操作非简单。

运行如图:

C语言读取MP3的信息

代码如下:

#include "stdafx.h"
#include <string.h>

int main(int argc, char* argv[])
{
 FILE *fp;
 fp=fopen("D:\\爱上爱的味道.mp3","r");
 if(fp==NULL)
  printf("Failed to open mp3.\n");
 char pbuf[128];
 memset(pbuf,0,sizeof(pbuf));
 fseek(fp,-128,SEEK_END);
 fread(pbuf,1,128,fp);
  if(!((pbuf[0] == 'T'|| pbuf[0] == 't')
  &&(pbuf[1] == 'A'|| pbuf[1] == 'a')
  &&(pbuf[2] == 'G'|| pbuf[0] == 'g')))
  {
  printf("Not a standard MP3 format.\n");
  return 1;
  }
  char buf[64];
  memset(buf,0,64);
  memcpy(buf,pbuf,3);
  buf[3]='\0';
 printf("标识:%s\n",buf);
  memset(buf,0,64);
  memcpy(buf,pbuf+3,30);
  buf[30]='\0';
 printf("歌名:%s\n",buf);
  memset(buf,0,64);
  memcpy(buf,pbuf+33,30);
  buf[63]='\0';
 printf("作者:%s\n",buf);
  memset(buf,0,64);
  memcpy(buf,pbuf+63,30);
  buf[93]='\0';
 printf("唱片名:%s\n",buf);
  memset(buf,0,64);
  memcpy(buf,pbuf+93,4);
  buf[97]='\0';
 printf("年份:%s\n",buf);
  memset(buf,0,64);
  memcpy(buf,pbuf+97,28);
  buf[125]='\0';
 printf("本歌注释:%s\n",buf);

 fclose(fp);
 return 0;
}

 

      

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有