我们使用两个AKMixer(一个用于左侧,一个用于右侧通道)和一个AKMixer作为输出,这两个混频器用作输入。如果其中一个混音器的音量低于0.00001,则输出信号会丢失。但是可以降低音量,因为如果我们将主系统音量降低到超过0.00001的值,则耳机插孔上的信号会降低。
作为一种解决方法,我尝试将AKMixer.output.volume设置为0.5,将输入混音器设置为0.00001,它也可以。但在我的应用程序中,我还需要最大输出,而且在一次更改两个音量级别时我得到了奇怪的“点击”。
如果有人可以提供帮助,那就太好了。随着解决方法或导致问题。谢谢。
var rightSine = AKOscillator(waveform: AKTable(.sine))
var rightPanner : AKMixer!
let pan2 = AKPanner(self.rightSine, pan: 1)
pan2.rampDuration = 0
let right1: AKMixer = AKMixer(pan2 /*, .... some more */)
self.rightPanner = right1
let mix = AKMixer(self.rightPanner /* left channel... */)
mix.volume = 1.0
AudioKit.output = mix
do {
try AudioKit.start()
} catch {
}
self.rightPanner.volume = 0.00002
这是用于初始化音频内容(缩短)的代码,然后启动节点。
*编辑:我正在测试输出被破坏的精确阈值。
AudioKit的AKMixer是围绕Apple的AVAudioMixerNode的简单包装器,因此,我无法深入挖掘帮助您使用该节点解决问题。但是,如果你愿意转换到AKBooster,它的工作就是放大或减小信号,我认为你可以使用小数字来获得增益值。
var rightSine = AKOscillator(waveform: AKTable(.sine))
var rightBooster: AKBooster!
let pan2 = AKPanner(self.rightSine, pan: 1)
pan2.rampDuration = 0
let right1: AKMixer = AKMixer(pan2 /*, .... some more */)
self. rightBooster = AKBooster(right1)
let mix = AKMixer(self. rightBooster /* left channel... */)
mix.volume = 1.0
AudioKit.output = mix
self.rightBooster.gain = 0.00002