Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用适用于iOS的AudioKit进行脱机音频渲染<;11_Ios_Swift_Xcode_Avfoundation_Audiokit - Fatal编程技术网

使用适用于iOS的AudioKit进行脱机音频渲染<;11

使用适用于iOS的AudioKit进行脱机音频渲染<;11,ios,swift,xcode,avfoundation,audiokit,Ios,Swift,Xcode,Avfoundation,Audiokit,我有4个AKPlayer节点,每个节点都连接到一些效果,最后它们混合在一起。 我想脱机渲染iOS>9.0的输出,但我不知道如何进行 编辑:我已经实现了渲染,并在iOS>11时将其分离 虽然iOS>11 renderToFile似乎做得很好,但对于iOS,如果要使用iOS11+,可以使用AudioKit的render to file: /// Render output to an AVAudioFile for a duration. /// - Parameters ///

我有4个
AKPlayer
节点,每个节点都连接到一些效果,最后它们混合在一起。 我想脱机渲染iOS>9.0的输出,但我不知道如何进行

编辑:我已经实现了渲染,并在iOS>11时将其分离
虽然iOS>11 renderToFile似乎做得很好,但对于iOS,如果要使用iOS11+,可以使用AudioKit的render to file:

/// Render output to an AVAudioFile for a duration.
///     - Parameters
///         - audioFile: An file initialized for writing
///         - seconds: Duration to render
///         - prerender: A closure called before rendering starts, use this to start players, set initial parameters, etc...
///
@available(iOS 11.0, macOS 10.13, tvOS 11.0, *)
public func renderToFile(_ audioFile: AVAudioFile, seconds: Double, prerender: (() -> Void)? = nil) throws {
如果需要对iOS9+的支持,请使用AKOfflineRenderNode的render to URL函数:

@可用(iOS,已淘汰:11) @可用(tvOS,已淘汰:11) @可用(macOS,已淘汰:10.13) 开放类AKOfflineRenderNode:AKNode、AKComponent、AkiInput{

public typealias AKAudioUnitType = AKOfflineRenderAudioUnit
public static let ComponentDescription = AudioComponentDescription(effect: "mnrn")
private var internalAU: AKAudioUnitType?

open var internalRenderEnabled: Bool {
    get { return internalAU!.internalRenderEnabled }
    set { internalAU!.internalRenderEnabled = newValue }
}

open func renderToURL(_ url: URL, seconds: Double, settings: [String: Any]? = nil) throws {
    return try internalAU!.render(toFile: url, seconds: seconds, settings: settings)
}

你试过什么?最好提供一个@JerodJohnson我试过AKOfflineRenderNode,但它不支持iOS<11.0我已经编辑了我的问题,如果你看看@Aurelius就好了
public typealias AKAudioUnitType = AKOfflineRenderAudioUnit
public static let ComponentDescription = AudioComponentDescription(effect: "mnrn")
private var internalAU: AKAudioUnitType?

open var internalRenderEnabled: Bool {
    get { return internalAU!.internalRenderEnabled }
    set { internalAU!.internalRenderEnabled = newValue }
}

open func renderToURL(_ url: URL, seconds: Double, settings: [String: Any]? = nil) throws {
    return try internalAU!.render(toFile: url, seconds: seconds, settings: settings)
}