3

我的要求是创建一个 .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;

任何形式的帮助都将受到高度赞赏。

4

0 回答 0