завершениеHandler AVAudioPlayerNode.scheduleFile () вызывается слишком рано

Я пытаюсь использовать новый AVAudioEngine в iOS 8.

Похоже, завершение Handle из player.scheduleFile () вызываетсядо Звуковой файл завершил воспроизведение.

Я использую звуковой файл длиной 5 с - иprintln()-Сообщение появляется примерно за 1 секунду до конца звука.

Я делаю что-то не так или я неправильно понимаю идею завершения Хэндлера?

Спасибо!

Вот некоторый код:

class SoundHandler {
    let engine:AVAudioEngine
    let player:AVAudioPlayerNode
    let mainMixer:AVAudioMixerNode

    init() {
        engine = AVAudioEngine()
        player = AVAudioPlayerNode()
        engine.attachNode(player)
        mainMixer = engine.mainMixerNode

        var error:NSError?
        if !engine.startAndReturnError(&error) {
            if let e = error {
                println("error \(e.localizedDescription)")
            }
        }

        engine.connect(player, to: mainMixer, format: mainMixer.outputFormatForBus(0))
    }

    func playSound() {
        var soundUrl = NSBundle.mainBundle().URLForResource("Test", withExtension: "m4a")
        var soundFile = AVAudioFile(forReading: soundUrl, error: nil)

        player.scheduleFile(soundFile, atTime: nil, completionHandler: { println("Finished!") })

        player.play()
    }
}

Ответы на вопрос(6)

Ваш ответ на вопрос