我的要求是创建一个 .wav 文件,并且我已经编写了带有 ADPCM 编码器的现有代码。它在线性 PCM 中获取数据并将其转换为 ADPCM 并为文件创建波头。
现在,我修改了代码,直接将数据转换成 Apple ADPCM 格式,具体数值如下。如何为这个文件创建一个波头,这样我就可以在任何播放器上播放这个文件。现在,我得到的文件大小是正确的,但它没有播放数据,既不是完整的长度,也不是没有噼啪声。请建议我如何调试代码的任何突破,以便我可以得到确切的问题。目前这对我来说似乎是波头的问题。
使用的 ADPCM 规格: * mSampleRate: * 44100
mFormatID: kAudioFormatAppleIMA4
mFormatFlags: 0
mChannelsPerFrame: 2
mBitsPerChannel: 0
mFramesPerPacket: 64
mBytesPerPacket: 68(= mChannelsPerFrame * 34)
使用的波头规格: * samplesPerSecond: * 44100
频道: 2
状态: 0x0011U
块对齐: 通道 * 256
bitsPerSample: 4
格式扩展: 2
samplesPerBLock: lsx_ima_samples_in((size_t) 0, (size_t) wavHeader.wChannels, (size_t) wavHeader.wBlockAlign, (size_t) 0);
samplesWritten: self.audioLength/wavHeader.wSamplesPerBlock
fmtSize: 2 + wavHeader.wExtSize;
任何形式的帮助都将受到高度赞赏。