AVAudoPlayerNode для воспроизведения звука определенное количество раз

Возможно ли в AVAudioPlayerNode зацикливать звук только несколько раз, а не бесконечное количество раз? Приведенный ниже код запланировал воспроизведение звука бесконечное количество раз вместо 5 раз.

aVAudioPlayerNode.scheduleBuffer(buffer!, at: nil, options: AVAudioPlayerNodeBufferOptions.loops, completionHandler: nil)

Я похож на AVAudioPlayer как numberOfLoops, чтобы определить, сколько раз воспроизводить аудио. Я мог бы использовать AVAudioPlayer, но у меня нет функций для воспроизведения звука.


person Simant    schedule 07.06.2018    source источник


Ответы (1)


В документации scheduleBuffer сказано: «Планирует воспроизведение буфера после любых ранее запланированных команд». Так что просто запланируйте это несколько раз.

extension AVAudioPlayerNode {
    func sceduleBuffer(_ buffer: AVAudioPCMBuffer, numberOfLoops: Int = 1) {
        for _ in 0..<numberOfLoops { scheduleBuffer(buffer, at: nil) }
    }
}
person dave234    schedule 07.06.2018