从这里开始,所有逻辑都是从“Current Data Asset”变量中提取的。例如,在这个新函数中,我将取得歌曲时长(小节数),并将其设置为叫作“Current Song Duration”的变量。音乐控制器就是通过这种方式知道何时再次打乱歌曲列表的顺序,并选择另一首歌曲(Quartz会为我清点小节数)。
在这个“Calculate Song Duration”函数中,我引用了当前数据资产的小节总时长,并在每个节拍上计算“现在是否应该更换歌曲?”它引用了“Bar Counter”变量,并使用取模运算在正确的时间告知我播放时长达到了“Current Song Duration”的值,并且我们处于该小节的第四拍。当得到这一结果时,我们就知道此时应该打乱歌曲列表,然后继续执行我们的逻辑。