问题
According to the informal standard, an ETCO frame is the frame header (ten bytes), followed by a time stamp format (one byte). This is then followed by a series of events of the form "Type of Event, Time Stamp" (Type of Event is one byte, while Time Stamp is five bytes per event).
How can someone figure out how many events there are? Would a program need to use the size field of the frame header?
If all events are five bytes in length, what's the purpose of the 0xFF event, whose purpose is "One more byte of event follows"?
Source: http://id3.org/id3v2.3.0#sec4.6
回答1:
- Yes, you must parse the entire frame to find out. Estimating
(size of frame) minus (header size), divided by 5
would give you the most probable count of both, but in reality more events and fewer timestamps might occur. - I've never encountered that situation myself, but assume it's for combining multiple events with the same timestamp. Instead of only having one event (i.e.
$0D
for unwanted noise) the bytes$FF$FF$05$06$0D
might occur, indicating that two more bytes=events are following (i.e. outro ends, verse starts, unwanted noise - all at the same timestamp, whose 4 bytes then follow).
来源:https://stackoverflow.com/questions/59586097/id3v2-3-etco-frame-event-format-clarification