【问题标题】:AudioKit bounce recording syncAudioKit 反弹录音同步
【发布时间】:2021-06-26 11:25:17
【问题描述】:

我需要帮助解决一个问题...我正在使用 AudioKit 4 中的 renderToFile 录制弹跳,一位艺术家抱怨不同的轨道未与样本对齐。在 preRender 中,我们有一个播放器列表,其中包含设置为连续播放的不同曲目和记录,问题是我无法设置 AVAudioTime 调度,因为它崩溃了,我想是因为引擎处于手动渲染模式。有没有办法将它们同步到样本?我想这是一个与底层 AVAudioEngine 相关的问题......

我不能使用 AVMutableComposition,因为我们需要录音与 AudioKit 播放的完全相同,而且音量会有所不同。

【问题讨论】:

    标签: ios swift audiokit avaudioengine


    【解决方案1】:

    我在设置离线渲染模式后,以及在离线后回到在线渲染模式后都经历过随机崩溃。

    这种情况似乎是由这种情况触发的:

    • 在引擎未完全完成处理时设置离线渲染模式。
    • 在调用disableManualRenderingMode 后立即开始处理,而没有给引擎足够的启动时间。

    我发现的部分解决方法是在设置离线模式之前等待一段时间,以及在上线后等待一小段时间。所以我的代码中有如下功能:

    func setOnlineMode(successCompletion: @escaping() -> Void, failCompletion: @escaping() -> Void) {
        AKManager.engine.stop()
        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.5, execute: {
            AKManager.engine.disableManualRenderingMode()
            do {
                try AKManager.engine.start()
            } catch {
                print("failed to start engine")
                failCompletion()
            }
            DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.5, execute: {
                successCompletion()
            })
        })
    } 
    

    我也尽量避免在进入离线模式后重置引擎:

        /* From AudioKit renderToFile function */
        try AKTry {
            // Engine can't be running when switching to offline render mode.
            if self.isRunning { self.stop() }
            try self.enableManualRenderingMode(.offline, format: audioFile.processingFormat, maximumFrameCount: maximumFrameCount)
    
            // This resets the sampleTime of offline rendering to 0.
            self.reset() /* I don't do this */
            try self.start()
    
    
        }
    

    说实话,我已经大量修改了我的代码以避免在在线和离线模式之间来回切换。在如上所述的延迟之后,我现在只在我的应用程序中的某个时间点执行此操作。

    【讨论】:

    • 我不确定它是否与我要求的相同,但谢谢。
    猜你喜欢
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2018-08-28
    相关资源
    最近更新 更多