我想从音频文件中读取数据包,但我不想将它们发送到播放缓冲区。我只想得到一组数据包,最好是浮点数。我已经准备好音频,然后想打电话:
OSStatus err = AudioFileReadPackets (audioFileID,FALSE,outBytes,NULL,0,numPackets,whatGoesHere?);
但是最后一个论点是什么?
谢谢。
我想从音频文件中读取数据包,但我不想将它们发送到播放缓冲区。我只想得到一组数据包,最好是浮点数。我已经准备好音频,然后想打电话:
OSStatus err = AudioFileReadPackets (audioFileID,FALSE,outBytes,NULL,0,numPackets,whatGoesHere?);
但是最后一个论点是什么?
谢谢。
如果您使用的是音频队列服务,那么您将放置 AudioQueueBuffer 的 mAudioData 指针。但是由于您只需要这些位,因此您可以将指针传递给您选择的预分配缓冲区(静态或动态)。您可以通过使用文件中的部分数据格式来推断缓冲区必要大小的上限。
音频队列服务编程指南中提供了这种计算的示例;DeriveBufferSize 的 grep。