我想从音频文件中读取数据包,但我不想将它们发送到播放缓冲区。我只想获得一个数据包数组,理想情况下是浮点数。我准备了音频,然后想打电话:
OSStatus err = AudioFileReadPackets (audioFileID,FALSE,outBytes,NULL,0,numPackets,whatGoesHere?);
但最后一个论点是什么?
感谢。
答案 0 :(得分:1)
如果您使用的是音频队列服务,那么您可以将音频队列放入AudioQueueBuffer。但是,由于您只需要这些位,您可以将指针传递给您选择的预分配缓冲区(静态或动态)。您可以使用文件中的部分dataFormat来推断缓冲区所需大小的上限。
Audio Queue Services Programming Guide中提供了此计算的一个示例; grep for DeriveBufferSize。