【发布时间】:2018-09-07 07:46:07
【问题描述】:
我正在尝试读取存储在由噪声监测设备生成的 WAV 文件的 ICMT 标签中的数据。
RIFF 解析代码似乎一切正常,除了 ICMT 标签似乎在声明的大小之后有数据。幸运的是,它是时间戳,它对我的应用程序来说绝对是至关重要的一条信息。
SYN 是十六进制 16,其大小为 22,最多包含时间戳之前的 NUL。监视器文档没有帮助;它说标签包括时间,但他们的例子也有同样的问题。
它是封闭列表中的最后一个标签,列表的大小确实包含它 - 这是否意味着它不需要块 ID?我正在努力寻找像样的 RIFF 文档,但我找不到任何表明这种情况的东西;我也看不出如何确定它是最后一个块,因此知道在没有块 ID 的情况下读取它。
或者,ICMT 注释块是文件中的最后一件事 - 这是一个特例吗?我可以通过读取从声明长度 ICMT 末尾到文件末尾的所有内容来获取时间,并假设这将始终有效吗?
当前的解析器行为是在通道/dB信息作为块ID+大小之后被读取,然后抱怨文件中没有足够的数据来满足请求。
【问题讨论】: