简而言之: 我有一个方法以每秒 44,100 次的速度被调用。我想知道在需要在第 13781.25 次方法调用时打勾的情况下该怎么做——即每分钟 192 次节拍)。我可以选择四舍五入该数字并在第 13781 次方法调用时发出声音,这意味着我在 0.25 时发出声音太早了。这相当于早了 0.00000566893424 秒。
在 100 个滴答声之后,我确信延迟肯定会加起来。是否有任何聪明的解决方法可以跟踪延迟,并且当延迟超过某个点时,可能会有一些数字来保持节拍再次正常运行?
到目前为止,这是我下面的代码..
int counter; // used to track down the amount of times the method has been called
signalMethod(){
if(counter % ceil(2,646,000/10) == 0){ //the ceil function turns the decimal point into a whole number so it can be used for analysis. but this will cut off delay.. and over time im sure it will add up.. which will cause the beats to fluctuate...
playSound();
}
counter++;
}