同步音频套件中多个音频文件的播放

时间:2018-07-10 23:53:07

标签: swift audiokit

我正在使用AudioKit开发一个小型音频定序器应用程序。我只需要播放4个音频通道。但是,我需要将它们回放到与样本水平完全同步的状态。当我仅使用两个音频文件运行测试时,我听到它们没有同步。差异仅是几个样本,但是即使一个样本差异也将是一个问题。我当前正在使用路由到AKMixer对象的多个AKClipPlayer对象。我这样称呼他为循环的基础:

   private var clipPlayers : [AKClipPlayer] = []

   func play(){
        for player in clipPlayers{
            player.play()
        }
    }

使用AudioKit是否可以对多个音频文件进行准确的回放定时采样?

1 个答案:

答案 0 :(得分:2)

是的,您需要安排播放以play(at:)开始。

// This can take longer than expected, so do this before choosing a future time
clipPlayers.forEach { $0.prepare(withFrameCount: 10_000) }

let nearFuture = AVAudioTime.now() + 0.2
clipPlayers.forEach { $0.play(at: nearFuture) }