WAV文件头报告的大小不正确

时间:2017-06-19 20:00:29

标签: audio wav openal

解码WAV文件时,我能够从标题中读取以下值(格式整齐):

Channels: 2
BitDepth: 16
SampleRate: 44100
FileSize: 907346
FileType: RIFF
AudioFileType: WAVE
data: [...]
PCM: 0

当我将其加载到OpenAL缓冲区并尝试播放时,声音无法播放。然而,经过大量的调整后,当我将FileSize硬编码为907300时,我能够播放声音。

这让我觉得当我开始加载示例数据时,OpenAL很可能需要我偏移标题。但是WAV文件的标头大小只有44个字节。我还假设只是偏移了46个字节并不是一个长期的解决方案。那么额外的2个字节来自哪里?

更新

我测试了另一个我下载的互联网文件,而不是从LMMS保存。即使在偏移了44或46个字节之后它也根本不播放。除了FileSize: 1242448

之外,它的标题是相同的

1 个答案:

答案 0 :(得分:2)

它变成LMMS决定它不想以他们应该的方式保存.wav文件头。用dhex快速查看.wav文件,标题包含不需要的信息。整个标题看起来像这样:

RIFFR...WAVEfmt ........D...........LIST&...INFO
ISFT....LMMS (libsndfile-1.0.27)..data..........

我最终用bfxr和Bosca Ceoil进行了测试,所有的声音都在播放,标题看起来很整洁。

希望这些信息对某人有用。

相关问题