0
根據documentation,ID3有一個非同步標誌。據我瞭解,它應該只適用於ID3幀(不是頁眉或頁腳)。ID3非同步:它是如何工作的
但是,我應該如何處理解析之前的幀(閱讀,而不是寫作)?我應該只更換'11111111 00000000 111xxxxx'
上的所有'11111111 111xxxxx'
序列嗎?
根據documentation,ID3有一個非同步標誌。據我瞭解,它應該只適用於ID3幀(不是頁眉或頁腳)。ID3非同步:它是如何工作的
但是,我應該如何處理解析之前的幀(閱讀,而不是寫作)?我應該只更換'11111111 00000000 111xxxxx'
上的所有'11111111 111xxxxx'
序列嗎?
不,這就是您在寫標籤時所做的事情(並且不要忘記,在這種情況下,您還需要將規範中所述的「0xff,0x00」替換爲「0xff,0x00,0x00」) 。
當你正在閱讀的標籤,你可以簡單地替換「0xFF的」任何「0xFF的,0×00」序列。在讀取文件時,最簡單的方法是記錄最後讀取的字節並丟棄0xff後的任何單個0x00字節。
這不是真的那麼容易想出解決辦法,因爲該規範只描述了在unsynchronisation的方式做,當你寫的標籤,不讀它的時候你做什麼。