I have 4 AKPlayer
nodes and each one is connected to some effects and finally they are mixed together.
I want to render offline the output for iOS > 9.0 but I can't figure out how.
edit : I have implemented the render and separated it for iOS >11 While iOS>11 renderToFile seems to do well, but for iOS <11 the rendered file has some lags and jumps forward at some seconds, resulting silent in the end.
here is my render function :
do{
if #available(iOS 11, *) {
let outputFile = try AKAudioFile(forWriting: url, settings: [:])
_ = AudioKit.engine.isRunning
try AudioKit.renderToFile(outputFile, duration: karaPlayer.duration, prerender: {
self.seekTo(time: 0)
})
}else {
let offlineNode = AKOfflineRenderNode(self.mixer)
AudioKit.output = offlineNode
offlineNode.internalRenderEnabled = false
try AudioKit.start()
self.seekTo(time: 0)
try offlineNode.renderToURL(url, duration: self.karaPlayer.duration)
self.karaPlayer.stop()
self.voicePlayer.stop()
offlineNode.internalRenderEnabled = true
}
} catch {
print(error)
print("Couldn't render output file")
}
mixer's inputs are 2 AKPlayer Nodes that read from a ".caf" file.