在将AKMicrophone记录输出到单个通道的AKSettings.channelCount = 2的环境中。所以,我希望能够理解如何在AudioKit中正确地修补或混合音频,谢谢?
让我们看看下面的例子,记住我把它保持在最低限度,所以把它看作是“伪代码”,如下所示:
AKSettings.bufferLength = .medium
AKSettings.channelCount = 2
AKSettings.setSession(category: .playAndRecord)
AKNodeRecorder(node: microphone) // or AKMicrophone >>> AKMixer
mainMixer.connect(input: mic) // is AKMixer()
AudioKit.output = mainMixer
AudioKit.start()播放器(AKPlayer)设置非常简单:
player.load(audioFile: audioFile)
player.isLooping = false
player.buffering = .always
player >>> mainMixer导致recorded microphone audio被“摇摄”左转,或在左声道播放!我更愿意确定它是如何工作的,以便能够做出正确的选择,因为在模拟混音器中,麦克风将连接到单声道,在混音中居中,除非左右摇摆。另外,我不想把AKSettings.channelCount改成1,因为我也想让音轨输出立体声。
发布于 2020-05-01 01:56:07
我专门为麦克风找到了几个解决方案,但当然,如果能找到一本关于如何在AudioKit中正确修补东西的好读物就更好了:)
第一个可行的解决方案是使用此处声明的AVAudioFormat (https://audiokit.io/docs/Classes/AKMicrophone.html#/c:@M@AudioKit@objc(cs)AKMicrophone(im)initWith,如下所示:
var audioFormat: AVAudioFormat = AVAudioFormat(standardFormatWithSampleRate: 44100, channels: 1)!
var mic = AKMicrophone(with: audioFormat)我们也可以使用AKStereoFieldLimiter,并将通道数限制为一个:
AKStereoFieldLimiter(mic, amount: 1)然后,您可以将其传递给AKMixer,并将其修补给AKNodeRecorder。
可能还有其他方法,但到目前为止我只知道这些。
https://stackoverflow.com/questions/61529361
复制相似问题