我正在熟悉如何使用 AudioUnit 播放声音,并且对数据包和帧的概念感到困惑。我想知道:
AudioUnit上下文中包和帧的定义是什么
每个数据包使用多个样本和每帧多个数据包的交易是什么
我问的原因:在我目前看到的所有代码示例中,数据包本质上是一个示例,对于 16 位立体声流,通常 mBytesPerPacket=4。而 mFramesPerPacket 通常为 1,制作一个帧、一个数据包和一个样本(都是立体样本),概念相同。
我期望一个数据包和/或一个帧是样本缓冲区,即一组 256 或 512 个连续样本,驱动程序可以指向并线性读取。将帧/数据包大小减少到一个样本似乎会给负责播放数据的任何驱动程序带来不必要的压力。我错过了什么?