代码之家  ›  专栏  ›  技术社区  ›  Mr_P

在Audiokit中使用AKBooster和AkAmplificateTracker

  •  3
  • Mr_P  · 技术社区  · 8 年前

    我在这里的问题是关于添加一个 AKBooster AKAmplitudeTracker 在信号链中稍后添加到输出之前。它应该看起来像这样:

    do {
       try sprite.MIDISamplerPlayer.loadAudioFile(myAudioFile)
    } catch let error as NSError {
       print("There's an error: \(error)")
    }
    
    sprite.amplitudeTracker = AKAmplitudeTracker(sprite.MIDISamplerPlayer)
    sprite.silentBooster = AKBooster(sprite.amplitudeTracker)
    
    sprite.silentBooster?.gain = 0
    
    sprite.silentBooster! >>> mixer
    sprite.MIDISamplerPlayer.enableMIDI(sprite.samplerMIDI.client, name: "My MIDISampler")
    sprite.MIDISamplerPlayer >>> mixer
    
    sequencer = AKSequencer(filename: myMIDI)
    
    AudioKit.output = mixer
    AudioKit.start()
    
    sequencer!.play()
    

    我遇到的问题是,增益报告为0.0,但音量正常,即增益对输出没有影响。

    我不能 AKBooster公司 添加到末尾的信号链,因为我想要 AKBooster公司 添加到序列器中的轨迹。

    关于如何解决这个问题的想法非常感谢!谢谢8)

    已编辑 在我的过程中错过了一些步骤,在Aure的回答之后注意到。。。

    2 回复  |  直到 8 年前
        1
  •  3
  •   Aurelius Prochazka    8 年前

    我认为你没有把助推器放在链条上。你必须这么做

    sprite.silentBooster >>> mixer
    

    而不是雪碧。MIDI采样器,否则跟踪器和扩音器都不会有音频通过它。

        2
  •  2
  •   Mr_P    8 年前

    再次感谢Aure(他的建议解决了这个问题)。修改后的代码如下,现在按预期工作。

    sprite.amplitudeTracker = AKAmplitudeTracker(sprite.MIDISamplerPlayer)
    sprite.MIDISamplerPlayer.enableMIDI(sprite.samplerMIDI.client, name: "My MIDISampler")
    sprite.silentBooster = AKBooster(sprite.amplitudeTracker)
    
    sprite.silentBooster?.gain = 0
    sprite.silentBooster! >>> mixer
    
    //sprite.MIDISamplerPlayer >>> mixer