【问题标题】:exporting filtered audio using AudioKit 5使用 AudioKit 5 导出过滤后的音频
【发布时间】:2021-07-15 20:27:15
【问题描述】:

我找不到任何示例来说明如何导出通过 AudioKit 的 5 个过滤器传输的音频。

我想为音频添加一些效果(如混响等),然后导出过滤后的音频

这是我的尝试:

    // load empty file to write
    let docs = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    let dstURL:URL =  docs.appendingPathComponent("rendred.caf")
    var audioFile:AVAudioFile!
    do {
        audioFile = try AVAudioFile(forReading: dstURL)
    } catch {
        Log("Could not load file")
    }
    
    // duration of audio after add some effects 
    let duration = self.conductor.player.duration
    let rendredTime = Double(duration)
    
    // using AudioEngine() to export mixed audio but it's not work <----????
    do {
        try? self.conductor.engine.renderToFile(audioFile, duration: rendredTime, prerender: {
            self.conductor.player.play()
        })
    }

我不确定renderToFile() 函数是如何工作的

【问题讨论】:

  • 您的问题是什么?就您上面发布的代码而言,有什么问题?
  • 您想要实现的导出流程是怎样的?您要导出什么类型的音频?音频是来自触发样本、本地音频文件还是来自内置麦克风的实时输入?您是想导出音频以与他人分享(通过电子邮件、SoundCloud、短信等),还是只想播放应用了效果的渲染剪辑?
  • @MarkJeschke 我正在尝试在卡拉OK等背景音乐中录制普通音频,但我不确定如何合并两个音频并使用“renderToFile()”函数将其导出

标签: swift audiokit


【解决方案1】:

如果不回答 Mark Jeschke 的问题,很难回答,但总的来说:

您可以加载音频文件,创建新的混响(例如 CostelloReverb)。 将加载的音频作为节点放入混响。 将混响作为输出(同样 - 这取决于您到底想要做什么)到 AudioEngine 输出。

如果您想与播放混合,您可以使用 DryWetMixer。

一些一般的例子:

import Foundation
import AudioKit
import SoundpipeAudioKit

class AudioProcessing {

let audioFile:(choose the way you want to load/play)
let playback :(same)
let reverb:CostelloReverb
let dryWetMix:DryWetMixer
let engine = AudioEngine()

    init() {
   
        (init the audioFile and playback here)

        reverb = CostelloReverb(audioFile)
        dryWetMix = DryWetMixer(playback, reverb)
        engine.output = dryWetMix
        
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2018-09-18
    相关资源
    最近更新 更多