在iOS上播放ADPCM流(MS IMA 0x11)

时间:2013-11-09 01:34:12

标签: ios audio audiounit adpcm

我正在使用AudioUnit / RemoteIO API来实现流式音频的播放。其他格式如a-law和u-law工作正常。

以下是我如何设置a-law格式的示例:

    audioFormat.mSampleRate       = format->nSamplesPerSec;
    audioFormat.mFormatID         = kAudioFormatALaw;
    audioFormat.mFormatFlags      = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;
    audioFormat.mFramesPerPacket  = 1;
    audioFormat.mChannelsPerFrame = format->nChannels;
    audioFormat.mBitsPerChannel   = format->wBitsPerSample;
    audioFormat.mBytesPerFrame    = (format->wBitsPerSample * format->nChannels) / 8;
    audioFormat.mBytesPerPacket   = audioFormat.mBytesPerFrame * audioFormat.mFramesPerPacket;

我尝试使用的格式是MS ADPCM,described here.

据我所知,在这种情况下,我需要以某种方式计算每个数据包的帧数。我唯一的附加信息是nBlockAlign字段,多媒体wiki将其描述为“IMA编码数据块的大小”。

我对此感到茫然。

每个数据包的帧数是如何计算的?它是否涉及nBlockAlign的块大小?

我将kAudioFormatDVIIntelIMA和kAudioFormatAppleIMA4列为格式。 iOS甚至支持这种ADPCM吗?

0 个答案:

没有答案