在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?
答案 0 :(得分:2)
是。该字段可用于帮助描述LPCM样本数据/帧的打包和对齐。这对于描述一些外部LPCM表示也是强制性的。
例如,您可以指定20位样本大小,但实现可能有利于使用3个字节或24位(每个样本忽略4位)来表示/传输/存储。