AudioStreamBasicDescription中是否需要mBytesPerFrame?

时间:2012-11-16 08:50:34

标签: objective-c ios audio core-audio audioqueueservices

AudioStreamBasicDescription struct:

struct AudioStreamBasicDescription {
    Float64 mSampleRate;
    UInt32  mFormatID;
    UInt32  mFormatFlags;
    UInt32  mBytesPerPacket;
    UInt32  mFramesPerPacket;
    UInt32  mBytesPerFrame;
    UInt32  mChannelsPerFrame;
    UInt32  mBitsPerChannel;
    UInt32  mReserved; 
};

如果我们知道nChannelsPerFrame和mBitsPerChannels,我们可以像这样计算mBytesPerFrame: mBytesPerFrame = mBitsPerChannels * mChannelsPerFrame / 8(如果我错了,请纠正我)

我相信所有领域都存在某些原因。什么是mBytesPerFrame?

1 个答案:

答案 0 :(得分:2)

是。该字段可用于帮助描述LPCM样本数据/帧的打包和对齐。这对于描述一些外部LPCM表示也是强制性的。

例如,您可以指定20位样本大小,但实现可能有利于使用3个字节或24位(每个样本忽略4位)来表示/传输/存储。