在 iOS 上,我有一个由 AUNode 包装的音频单元类型kAudioUnitSubType_AudioFilePlayer
,并连接到音频图中的多通道混音器和远程 IO(输出)。
在播放图表时,我想循环文件并能够确定 AudioFilePlayer 何时到达文件末尾,以便我可以在它开始下一次循环迭代之前执行操作。
在查看 AudioUnitProperties.h 时,虽然有一个完成回调 -mCompletionProc
它仅在磁盘读取文件并安排播放时调用,而不是在它实际完成播放音频时调用。
因此,我考虑将音频(数据包/帧)的长度存储为一个属性,并在附加到混音器的另一个输入的输入回调中,检查我们是否在文件末尾。但是该回调不会在每一帧都被调用,所以我很可能会错过文件的实际结尾。
我该如何处理?