我有一个AVAudioPlayerNode(playerNode)和两个AVAudioPCMBuffer(buffer1,buffer2)设置。
我还有一个AVAudioTime(futureTime)设置10秒钟。
var options: AVAudioPlayerNodeBufferOptions = []
options.insert(.interruptsAtLoop)
options.insert(.loops)
playerNode.scheduleBuffer(buffer1!,
at: futureTime,
options: options,
completionHandler:nil)
上面等待10秒后播放buffer1并继续播放。
调用以下代码:
playerNode.scheduleBuffer(buffer2!,
at: futureTime,
options: options,
completionHandler:nil)
导致buffer1停止播放,buffer2立即启动,而不是等待至少10秒,然后在buffer1的下一个循环中断。
我所做错的是什么导致了这种立即中断而不是按照指示在循环中断?
答案 0 :(得分:0)
我没有直接使用过AVAudioTime类,但是看看它似乎代表了一个确切的时刻,而不是相对的。如果这是真的,那么通过两次使用相同的“futureTime”,您将调度buffer2与缓冲区1同时启动。也许您可以在第一个之后10秒计算futureTime2。