我試圖從mp3中加載jpg(我在Flash中執行此操作,但這不是在這裏或那裏),並且我在一個十六進制編輯器中打開了幾個MP3,而其餘的標籤非常清晰,圖像部分是一個謎。有一個標籤「image/jpeg」,但是我希望圖像的字節長度類似於字符串,或者是一個字符串鍵來標記圖像的結尾,但我沒有看到類似內容,標籤上的文檔完全沒有幫助。如何確定圖像埋入ID3v2標籤的位置?
想了解一下我在這裏尋找的一些指導。驚訝於這是多麼不直觀的!
TIA
我試圖從mp3中加載jpg(我在Flash中執行此操作,但這不是在這裏或那裏),並且我在一個十六進制編輯器中打開了幾個MP3,而其餘的標籤非常清晰,圖像部分是一個謎。有一個標籤「image/jpeg」,但是我希望圖像的字節長度類似於字符串,或者是一個字符串鍵來標記圖像的結尾,但我沒有看到類似內容,標籤上的文檔完全沒有幫助。如何確定圖像埋入ID3v2標籤的位置?
想了解一下我在這裏尋找的一些指導。驚訝於這是多麼不直觀的!
TIA
除非你喜歡痛苦,否則不要重塑那個車輪。這是爲你工作的but one source for libraries。
雖然我通常會主張msw的解決方案,但該網站似乎沒有Flash的庫。但是,它有ID3v2 specification。如果你看第4部分,ID3v2 frame overview
,你會看到幀頭包含幀的大小,不包括頭部。我相信假設可以從那裏計算圖像大小是安全的。
PD:我假設你知道ID3v2標籤是如何工作的。如果你不這樣做,我建議你至少粗略看一下這個規範。基本上,有一個標題,一個擴展標題,然後是一個或多個包含標記數據的幀(每個數據一個幀),最後是填充。
編輯:爲了測試目的,我在我的十六進制編輯器中打開了一個帶有已知標記數據的MP3。找到一個名爲APIC
的幀,將指定的字節數複製到一個新文件中並將其保存爲test.jpg
。沒有工作。
挖掘更深一層,我找到了frame spec。具體來說,第4.14節,attached picture
,它描述了幀的種類(1字節文本編碼,零分隔mimetype,1字節圖片類型和零分隔描述)的「subheader」。因此,我從數據中刪除了這些信息,並將其餘部分複製到Windows能夠顯示的新jpg中。
因此,這種技術是:從幀頭
是的......我明白了,但文檔有點密集。我希望田地會更直接一點。前幾個字段(曲目名稱,藝術家名稱等)都是非常明顯的,但後來是圖像標籤,後面是相當長的一系列字符,這些字符在每個mp3中都是相同的,所以它們必須是某種指示符,但他們是什麼意思?然後是沒有明顯結束的圖像數據......我很驚訝這是「標準」。 :) – 2011-04-16 20:00:36
那麼,原來它是標準的,只是記錄在另一個地方。檢查編輯。 – Kyte 2011-04-17 00:59:24
@ Dr.Dredel:如果您不添加@part,您會收到通知嗎?我一直在想...... – Kyte 2011-04-17 16:09:39
哈哈。不,我不是在尋找苦難,但我確實想在閃存中建立這個,並且找不到一個這樣做的庫。我拒絕相信這是非常複雜的。 – 2011-04-16 15:43:07
我看的越多,我相信這比我最初確信它不是更復雜:) – 2011-04-16 20:01:36