91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9.22 KB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2024-11-06
  • 語言: 其他
  • 標簽: C語言??linux??ID3v1??ID3v2??

資源簡介

讀取MP3問文件ID3v2,ID3v2,APEv2標簽的程序,上傳之與大家交流。

資源截圖

代碼片段和文件信息

/**
?*?文?件?名:APEV2Tag.c
?*?功????能:媒體文件APEV2標簽信息提取函數和打印函數的實現
?*?創(chuàng)建日期:2009年05月10日
?*?最新日期:2009年05月10日
?*?程序編碼:huanying
?*/
?
?#include?“APEV2Tag.h“
?
??/*?get_APEv2Tag_info:讀取目標文件的APEv2標簽信息,成功返回0否從返回-1?*/
?int?get_APEv2Tag_info(FILE?*fp?APEv2Item?*header?int?tagflag?int?ID3v2Size)
?{
? int?c;
? int?i;
? int?item_num;
? int?item_size;
? long?tag_size;
? APEv2HF?HF_st;
? APEv2Item??*p1?=?NULL?*p2?=?NULL;
?
? if?(NULL?==?fp)
? {
? printf(“File?stream‘s?pointer?is?NULL!\n“);
? return?-1;
? }
?
? if?(NULL?==?fp)
? {
? printf(“APEv2HF‘s?pointeris?NULL!\n“);
? return?-1;
? }
?

/*?從文件尾部開始搜尋APEv2標簽標簽尾?*/
if?(tagflag?==?1?||?tagflag?==?3)
? fseek(fp?-(128L?+?32L)?SEEK_END);
? else
? fseek(fp?-32L?SEEK_END);
?
? fread(&HF_st?sizeof(APEv2HF)?1?fp);

? if?(0?==?strncmp(HF_st.preamble?“APETAGEX“?8))
? {
? printf(“This?medium?has?APEv2Tag?footer!\n“);
?
? tag_size?= ((HF_st.tagsize)[3]?< ? ((HF_st.tagsize)[2]?< ? ((HF_st.tagsize)[1]?< ? (HF_st.tagsize)[0];
?
item_num?=? ((HF_st.itemcount)[3]?< ? ((HF_st.itemcount)[2]?< ? ((HF_st.itemcount)[1]?< ? (HF_st.itemcount)[0];
?
if?(tagflag?==?1?||?tagflag?==?3)
fseek(fp?-(128L?+?tag_size)?SEEK_END);
else
fseek(fp?-tag_size?SEEK_END);

? //printf(“TagSize:%ld\t“?tag_size);?
? //printf(“Itemcount:%d\n“?item_num);
? }
? else
? {?
? ?/*?從文件頭部開始搜尋APEv2標簽標簽頭?*/
? ?if?(tagflag?==?2?||?tagflag?==?3) /*?判斷是否有ID3v2標簽?*/
? ? fseek(fp?ID3v2Size?SEEK_SET);
? ?else
? ? fseek(fp?0L?SEEK_SET);
? ?
? ?fread(&HF_st?sizeof(APEv2HF)?1?fp);
? ?if?(0?==?strncmp(HF_st.preamble?“APETAGEX“?8))
? {
? printf(“This?medium?has?APEv2Tag?header!\n“);
?
? tagflag?+=?HAS_APEv2;
?
? tag_size?= ((HF_st.tagsize)[3]?< ? ((HF_st.tagsize)[2]?< ? ((HF_st.tagsize)[1]?< ? (HF_st.tagsize)[0];
?
item_num?=? ((HF_st.itemcount)[3]?< ? ((HF_st.itemcount)[2]?< ? ((HF_st.itemcount)[1]?< ? (HF_st.itemcount)[0];
?
? if?(tagflag?==?2?||?tagflag?==?3) /*?判斷是否有ID3v2標簽?*/
fseek(fp?ID3v2Size?+?32L?SEEK_SET);
else
fseek(fp?32L?SEEK_SET);

? //printf(“TagSize:%ld\t“?tag_size);?
? //printf(“Itemcount:%d\n“?item_num);
? }
? else
? {
? ?printf(“This?medium?has?not?APEv2Tag!\n“);
? ?return?-1;
? }
? }/*?end?of?else?*/
?
? /*?頭結點不存儲信息?*/
? p2?=?header;
?
? /*?搜尋標簽元素中的關鍵字和其對應的值?*/
? for?(i=0;?i? {
?
? if?(?NULL?==?(p1?=?(APEv2Item?*)malloc(sizeof(APEv2Item)))?)
? {
? perror(“Memory?allocate?for?item?error“);
? exit(-1);
? }
?
? fread(p1->itemvaluesize?4?1?fp);
? fread(p1->itemflags?4?1?fp);
?
? item_size?=? ((p1->itemvaluesize)[3]?<? ((p1->itemvaluesize)[2]?<? ((p1->itemvaluesize)[1]?<? (p1->itemvaluesize)[0];

/*?當標簽元素的大小為負的時候,表示提取APEv2標簽元素有問題,終止提取?*/
if?(item_size? {
break;
}

//printf(“(%2d)ItemFla

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4668??2009-05-21?10:08??tag\APEV2Tag.c

?????文件???????1490??2009-05-21?10:08??tag\APEV2Tag.h

?????文件????????756??2009-05-21?10:08??tag\common.c

?????文件????????270??2009-05-21?10:08??tag\common.h

?????文件???????2062??2009-05-21?10:08??tag\cpmain.c

?????文件????????409??2009-05-21?10:09??tag\define.h

?????文件???????1694??2009-05-21?10:09??tag\ID3V1Tag.c

?????文件???????1080??2009-05-21?10:09??tag\ID3V1Tag.h

?????文件???????4499??2009-05-21?10:09??tag\ID3V2Tag.c

?????文件???????1600??2009-05-21?10:09??tag\ID3V2Tag.h

?????文件????????492??2009-05-21?10:18??tag\makefile

?????文件????????254??2009-05-21?10:22??tag\readme.txt

?????目錄??????????0??2009-05-21?10:16??tag

-----------?---------??----------?-----??----

????????????????19274????????????????????13


評論

共有 條評論