无法加载Microsoft RIFF/WAVE信息,sounddemo解析WAV文件失败求助
问题分析与解决
从输出日志能明确两个核心问题:
- WAV文件的Subchunk2ID字段实际是
LIST(十六进制5453494c),但demo预期是data - 最终
fread调用返回-1,说明读取音频数据块时失败
解决步骤
- 检查WAV文件结构:你使用的WAV文件包含LIST块(通常用于存储元数据,比如歌词、标记信息),但该demo仅支持标准的、直接以
data块结尾的WAV文件,不兼容带额外LIST块的结构。 - 重新生成标准PCM WAV文件:用音频编辑工具(如Audacity)打开你的input.wav,导出时选择未压缩PCM WAV格式,且不要添加任何额外元数据或标记块。导出完成后再用demo测试。
- 修改demo代码适配LIST块:如果需要保留原文件的LIST块,需修改demo的解析代码,跳过LIST块后再定位到
data块读取数据。具体操作是在解析完Subchunk1后,循环检查SubchunkID,遇到LIST时读取对应的SubchunkSize并跳过该块,直到找到data块再进行后续处理。
内容的提问来源于stack exchange,提问作者user17576136
相关产品推荐
相关产品推荐

