首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
MP3文件的結構與編程
有一個朋友喜歡聽MP3,為了獲取MP3,寫了一個程序,專門從一家音樂網站上搜索下載mp3,一下子下載了有上千首。這時朋友又犯愁了,這些MP3的歌曲名字都是使用1,2,3,4,。。等數字命名,挑選起來十分不方便。雖然MP3播放器能夠讀出MP3文件信息的歌曲名,但歌曲文件本身的名字卻不利于自己管理。于是就想寫一個小程序實現MP3自動更名。查了一些資料,研究了一下MP3的文件結構。
研究MP3的結構,就不能不研究ID3標簽。ID3標簽是MP3音樂檔案中的歌曲附加訊息,它能夠在MP3中附加曲子的演出者、作者以及其它類別資訊,方便眾多樂曲的管理。缺少ID3標簽并不會影響 MP3的播放,但若沒有的話,管理音樂文件也會相當的麻煩。如果你在網上download MP3,里面多半已經寫有預設的ID3訊息。ID3,一般是位于一個mp3文件的開頭或末尾的若干字節內,附加了關于該mp3的歌手,標題,專輯名稱,年代,風格等信息,該信息就被稱為ID3信息,ID3信息分為兩個版本,v1和v2版。
其中:v1版的ID3在mp3文件的末尾128字節,以TAG三個字符開頭,后面跟上歌曲信息。
v2版一般位于mp3的開頭,可以存儲歌詞,該專輯的圖片等大容量的信息。
但ID3并不是MP3標簽的ISO國際標準,ID3的各種版本目前只是一個近乎事實上的標準,并沒有人強迫播放器或者編碼程序必須支持它。
ID3V1大概有兩個版本,由于ID3V1.0沒有包括曲目序號的定義,所以Michael Mutschler在1997年進行了改進,引入了版本1.1。通過占用備注字段的最后兩個字節,用一個00字節作標記,另一個字節改為序號,可以讓ID3支持曲目編號了。一個字節的空間讓ID3 V1.1支持最高到255的曲目序號,考慮到一張唱片超過256個曲目的可能性極小,這個改進還是相當合理的。但ID3V1只有128個字節可以使用,如果要在MP3中儲存更多的信息,比如歌詞,專輯圖片等,顯然是無法達到的,于是產生了ID3V2。ID3V2到現在一共有4個版本,但流行的播放軟件一般只支持第3版,既ID3v2.3。由于ID3V1記錄在MP3文件的末尾,ID3V2就只好記錄在MP3文件的首部了。也正是由于這個原因,對ID3V2的操作比ID3V1要慢。而且ID3V2結構比ID3V1的結構要復雜得多,但比前者全面且可以伸縮和擴展。
但我們只需要讀出MP3的TITLE,所以只要解析IDV1就夠了,這里不對IDV2做過多說明,其實我也沒有深入研究IDV2。
ID3V1的內容和每個標簽占用的字節說明如下:
char Header[3]; /*標簽頭必須是"TAG"否則認為沒有標簽*/
char Title[30]; /*標題*/
char Artist[30]; /*作者*/
char Album[30]; /*專集*/
char Year[4]; /*出品年代*/
char Comment[30]; /*備注*/
char Genre; /*類型*/
相關推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |