Refer to the Stack Overflow question about a TimestampScale Element.
In this question, you are asking about a Duration Element.
The Duration Element you mentioned is made of
- Element ID
44 89
- Element Data Size
88
(a 1-byte Variable-Size Integer indicating 8 bytes of Element Data follow)
- Element Data
40 B0 00 00 00 00 00 00
(a big-endian 64-bit float representation of decimal 4096)
In JavaScript, you can convert those 8 bytes to the corresponding float value they represent using code like the following (adapted from an answer to question Convert uint8array to double in javascript)
let b = new Uint8Array([0x40, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
let f = (new DataView(b.buffer)).getFloat64();
When the TimestampScale value is the default (one million nanoseconds), then the Duration value is in milliseconds. In this case, the duration is 4096 milliseconds or 4.096 seconds.
If you want the duration in nanoseconds, multiply the Duration value by the TimestampScale value.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…