使用体积较低0.00001的AKMixer,没有输出

问题描述 投票:1回答:1

我们使用两个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
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.