0

我正在做一个音频应用程序,我需要为不同的声音实时操作音频缓冲区。我需要一个在后台运行的异步时钟,我可以将各种回调中的时间拉到毫秒,用于各种音频操作目的,例如我的音频播放的停止和开始时间,以及记录和停止记录的时间。

我需要它如此精确,以便我能够确定由各种进程引起的延迟并在我的代码中对其进行补偿。

如何在 iOS 中实现这样的时钟?

4

2 回答 2

1

如果您正在使用 RemoteIO 音频单元并从音频会话请求非常短的音频缓冲区,那么计算回调缓冲区中的远程回调和 PCM 样本似乎是将音频与亚毫秒分辨率对齐的最精确方法。回调之间的延迟量会影响其他任何事情。

您还可以使用 mach_time.h 标头中的计时器进行相当精确的单调时间测量,但这不会与音频播放速率同步,也不会考虑子系统之间的各种延迟。

于 2012-11-02T21:25:35.290 回答
0

如果您还没有这样做,我绝对建议您查看AVFoundation Framework并使用Core Audio。考虑到您对准确性的需求,您可以忘记本机 NSTimer 和 NSDate 选项。

于 2012-11-02T11:11:31.447 回答