- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是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
的预期行为。似乎即使缓冲区更长,回调也应该准时完成。
最佳答案
您是否使用Timer
计算时差?从我的 Angular 来看,并根据我的发现,该问题与Timer
有关,在ios see线程(Accuracy of NSTimer)中并不精确。
另外,您可以查看AVAudioTime(https://audiokit.io/docs/Extensions/AVAudioTime.html)
关于swift - AudioKit AKMetronome回调定时似乎不精确或量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61165380/
我是一名优秀的程序员,十分优秀!