AudioKit AKMetronome回调定时似乎不精确或量化

问题描述 投票:0回答:1

我通常不是AudioKit和数字音频的新手,所以我确定肯定有我缺少的东西。

我正在尝试通过获取每个回调的时间戳来从AKMetronome获得准确的时间。时机似乎已经以某种方式量化了,我不知道它是什么。

例如:如果我的节拍器设置为120,则每个回调应该相差0.5秒。但是,如果我计算出一个刻度与下一个刻度之间的差,我会得到:

0.49145491666786256

0.49166241666534916

0.5104563333334227

0.4917322500004957

0.5104953749978449

0.49178879166720435

0.5103940000008151

0.4916401666669117

它总是2个值之一,误差很小。我希望能够计算下一个滴答声何时到来,以便可以提前几帧触发动画,但这很难。我在俯视什么吗?

编辑:自从我最初发布这个问题以来,我想出了一个解决方案,但是我不确定这是唯一的还是最好的解决方案。

我使用AKSettings.BufferLength.veryShort将缓冲区设置为最小大小

使用最小的缓冲区,时间戳总是在一毫秒或两秒之内打开。我仍然不确定是否执行正确的操作,或者这是否是AKCallback的预期行为。似乎即使缓冲区更长,回调也应该准时进行。

swift audio audiokit metronome
1个回答
0
投票
或者,您可以查看AVAudioTime(https://audiokit.io/docs/Extensions/AVAudioTime.html
© www.soinside.com 2019 - 2024. All rights reserved.