【发布时间】:2013-10-30 00:04:58
【问题描述】:
根据documentation,ID3 标签有一个不同步标志。据我了解,它应该只应用于 ID3 帧(而不是页眉或页脚)。
但是在解析之前我应该如何处理帧(用于读取,而不是写入)?我是否应该将所有'11111111 111xxxxx' 序列替换为'11111111 00000000 111xxxxx'?
【问题讨论】:
根据documentation,ID3 标签有一个不同步标志。据我了解,它应该只应用于 ID3 帧(而不是页眉或页脚)。
但是在解析之前我应该如何处理帧(用于读取,而不是写入)?我是否应该将所有'11111111 111xxxxx' 序列替换为'11111111 00000000 111xxxxx'?
【问题讨论】:
不,这就是您在编写标签时所做的(不要忘记,在这种情况下,您还需要将任何“0xff,0x00”替换为“0xff,0x00,0x00”,如规范中所述)。
当您阅读标签时,您可以简单地将任何“0xff,0x00”序列替换为“0xff”。最简单的方法是在读取文件时立即执行此操作,方法是跟踪读取的最后一个字节并丢弃 0xff 之后的任何单个 0x00 字节。
要弄清楚这一点并不那么容易,因为规范只描述了在编写标签时以不同步的方式做什么,而不是在阅读它时做什么。
【讨论】: