Проблемы воспроизведения нескольких звуков с TheAmazingAudioEngine

Я реализую ударную установку с малой задержкой с помощью инфраструктуры http://theamazingaudioengine.com/. У меня есть сцена с одной кнопкой и viewController с методами ниже. Этот код работает очень хорошо, если я медленно нажимаю на кнопку. Но если я прикоснусь к нему много раз за короткий промежуток времени, например, 10 раз в секунду, звук не воспроизводится при некоторых касаниях без сообщений об ошибках. Аудио сэмпл короткий (менее 2 секунд).

Почему это происходит? Что не так в моей реализации?

я выбираю TheAmazingAudioEngine вместо AVAudioPlayer чтобы получить низкую задержку между касанием и звуком.

override func viewDidLoad() {
    super.viewDidLoad()

    // Enable multiple touch for the button
    for v in view.subviews {
        if v.isKindOfClass(UIButton) {
            v.multipleTouchEnabled = true
        }
    }

    // Init audio
    audioController = AEAudioController(audioDescription: AEAudioController.nonInterleavedFloatStereoAudioDescription())

    audioURL = NSBundle.mainBundle().URLForResource("shortSound", withExtension: "wav")!

    do {
        try audioController?.start()
    } catch {
        print("AudioController start Error")
    }

}

override func viewDidDisappear(animated: Bool) {
    super.viewDidDisappear(animated)

    audioController?.stop()
}

@IBAction func playSound(sender: UIButton) {
    do {
        let player = try AEAudioFilePlayer(URL: audioURL)
        player.removeUponFinish = true
        audioController?.addChannels([player])
    } catch {
        print("Player start Error")
    }
}

0 ответов

Другие вопросы по тегам