Проблема с синхронизацией AudioKit.renderToFile AKClipPlayer. Визуализированный файл не синхронизирован с позицией первого клипа, а также усечен

У меня проблема с методом renderToFile в Audiokit. У меня есть один AKClipPlayer, в котором один клип начинается с позиции 0.0. Мне нужно отобразить результирующее воспроизведение AKClipPlayer в файл.

func preRender() {
       self.clipPlayer.play()
   }

   let writeFile = try AKAudioFile()
        guard let duration = self.musicPlayer.clips.first?.duration else {
            let error = makeError(message: "No track file")
            failure(error)
            return
        }
        self.clipPlayer.volume = 1.0
        preparePlayers()

        try AudioKit.renderToFile(writeFile, duration: duration,
                                  prerender: preRender)

Вот результаты рендеринга на картинке ниже. введите здесь описание изображения

На первую дорожку записывается аудиоклип. Второй - это первый результат рендеринга. Файл обрезан в начале. Если я добавлю еще один клип в clipPlayer и повторю рендеринг - первый клип станет несинхронизированным. А второй синхронизируется с кликом.

Вопрос что я делаю не так? Как сделать так, чтобы все клипы синхронизировались при рендере. Если я просто воспроизвожу звук из проигрывателя клипов, все отлично синхронизируется.

Я использую версию 10.3 (10G8) и AudioKit v4.7.2.


person Andrew Dubenkov    schedule 27.09.2019    source источник


Ответы (1)


Чтобы решить эту проблему, я добавил пустой клип в качестве первого элемента clipPlayer.clips. Это предотвращает рассинхронизацию клипов.

person Andrew Dubenkov    schedule 08.10.2019