1

AudioStreamBasicDescription结构中:

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 是什么?

4

1 回答 1

2

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

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

于 2012-11-16T08:58:56.660 回答