安排缓冲区时,是否有办法为每个循环设置完成处理程序?

self.audioPlayerNode.scheduleBuffer(buffer, at: nil, options: .loops, completionHandler: completionHandler)

// call each loop, not only on the buffer end
func completionHandler() {
    // code here
}

最佳答案

我能想到的唯一方法是重新计划相同的缓冲区,每次都提供一个完成处理程序。

我会为此:

func scheduleNext() {
    self.audioPlayerNode.scheduleBuffer(buffer, at: nil, completionHandler: completionHandler)
}

func completionHandler() {
    // code here

    scheduleNext()
}

// ...
scheduleNext()

关于ios - 每个循环的iOS AVAudioPlayerNode缓冲区完成处理程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42085936/

10-11 03:44