Можно ли в автономном режиме визуализировать аудиофайл с динамическим темпом? - PullRequest
0 голосов
/ 07 сентября 2018

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

пример изображения


И я выложу здесь код.

// I want to change the tempo for bgm audio file dynamically
self.timePitch = AKTimePitch(self.bgmPlayer)
// here I set the initialized rate value to time Pitch
self.timePitch.rate = 1.0
// support iOS10+
self.out = AKOfflineRenderNode()
self.timePitch.connect(to: self.out)
// make the renderer as AudioKit.out
AudioKit.output = self.out
do {
    try AudioKit.start()
} catch {
    debugPrint(error.localizedDescription)
}
let url = URL(fileURLWithPath: NSTemporaryDirectory() + "output.caf")
// get total duration
let duration = self.duration()
DispatchQueue.global(qos: .background).async {
    do {
        let avAudioTime = AVAudioTime(sampleTime: 0, atRate:self.out.avAudioNode.inputFormat(forBus: 0).sampleRate)
        // start play BGM
        self.bgmPlayer.play(at: avAudioTime)
        // and render it to an offline file
        try self.out?.renderToURL(url, duration: duration)
        // **********
        // Question:
        // Can I change the tempo value when rendering?
        // **********

        // stop when finished
        self.bgmPlayer.stop()
    } catch {
        debugPrint(error)
    }
}

1 Ответ

0 голосов
/ 07 сентября 2018

Это действительно зависит от того, как реализован динамический темп - вы можете отправить аудио через сдвиг времени / высоты тона и отобразить результат.

...