【C语言】【控制台】----获取MP3文件的信息
erbi_lucifer吧
全部回复
仅看楼主
level 10
堕erbi 楼主

光影的世界,奋战吧!!!



2012年03月03日 09点03分 1
level 10
堕erbi 楼主
之前写的帖子都是先整理到文档在发出的,这篇帖子这是想到就写……[奸笑],就在十几分钟前刚完成这个小程序,于是心情大好开始发帖,当然以后也可以改成界面版的……
2012年03月03日 09点03分 3
level 10
堕erbi 楼主

程序名称:MP3信息
程序大小:7K
编译环境:vs2010(其它编译器也可以)
文件包括:MP3信息 .exe
注:可以作为其他程序的一部分,留着以后有用。
程序界面:
cmd里的带参数运行。

2012年03月03日 09点03分 5
level 10
堕erbi 楼主

[鼓掌]
MP3 文件的最后128个字符就是储存该文件的相关信息,于是我们只需要读取这128个字符再显示出来即可……
而最后的这128个字符我们可以用一个结构体储存。
/********************************************************************************************************
typedef struct {
char Identifiy[3];
char Title[30];
char Artist[30];
char Album[30];
char year[4];
char Comment[28];
//3个保留位
char reserved1;
char reserved2;
char reserved3;
}MP3Info;
/********************************************************************************************************
[心]
2012年03月03日 09点03分 6
level 10
堕erbi 楼主

接下来的都是一些简单的操作[背扭]
/********************************************************************************************************
用fopen打开文件。[你牛]
用seek定位到倒数128个字符[可爱]
用fread结构化读入数据[飞吻]
用fclose关闭文件[超人]
用printf输出……[炸弹]这不用说了……
/********************************************************************************************************
2012年03月03日 10点03分 7
level 10
堕erbi 楼主
/********************************************************************************************************
带参数运行。
/********************************************************************************************************
主函数:int main(int argc,char *argv[])
{
return 0;
}
argc是参数个数,*argv[]是参数数组。
argv[0]是文件名,于是argc至少是1;
[疑问]
于是:
//如果带参数运行的话就将参数作为文件名传给自定义函数GetMP3Info,否则提示用户输入文件名。
if(argc>1){
GetMP3Info(argv[1]);
}
else{
char FileName[MAX_PATH];
printf("请输入要查询信息的MP3文件全路径名:");
scanf("%s",FileName);
getchar();
GetMP3Info(FileName);
}
当你处理好带参数运行时,假如做出来的程序是A。
当你在MP3文件右击选择打开方式里选择做出来的程序A,那么双击时就会弹出程序A并显示文件信息。做成界面的话可以实现类似格式工厂为我们的右键菜单添加的那个“多媒体文件信息”的效果显示文件信息。
带参数运行在制作播放器是特别有用。如果你希望双击文件就弹出播放器开始播放的话……O(∩_∩)O哈哈~
[憧憬]

2012年03月03日 10点03分 8
level 10
堕erbi 楼主
/********************************************************************************************************
开始全部代码!!![微笑]
/********************************************************************************************************
#include<stdio.h>
#include<malloc.h>
#include <Windows.h>
typedef struct {
char Identifiy[3];
char Title[30];
char Artist[30];
char Album[30];
char year[4];
char Comment[28]; //3个保留位
char reserved1;
char reserved2;
char reserved3;
}MP3Info;

2012年03月03日 10点03分 9
level 10
堕erbi 楼主
int main(int argc,char *argv[])
{
if(argc>1){
GetMP3Info(argv[1]);
}
else{
char FileName[MAX_PATH];
printf("请输入要查询信息的MP3文件全路径名:");
scanf("%s",FileName);
getchar();
GetMP3Info(FileName);
}
getchar();
return 0;
}
[傻乐]
2012年03月03日 10点03分 12
level 10
堕erbi 楼主
[拍砖]第10楼被吞……于是将其内容分在11,12楼……经常吞楼……
2012年03月03日 10点03分 13
level 10
堕erbi 楼主

11,14楼又被吞……[拍砖][拍砖]以下是内容…………
[寻死]不要吞楼 了……
2012年03月03日 11点03分 15
level 4
mark
2012年03月08日 11点03分 16
level 1
挖坟!顺带谢谢楼主,写的不错。还有是identify不是identifiy吧
2021年05月14日 08点05分 17
这都过去快十年了,这些东西还没过时吗
2021年06月11日 04点06分
1