Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在两个耳机频道上打开麦克风_Ios_Swift_Audiokit - Fatal编程技术网

Ios 在两个耳机频道上打开麦克风

Ios 在两个耳机频道上打开麦克风,ios,swift,audiokit,Ios,Swift,Audiokit,我面临着一个简单的问题,在谷歌上找到答案(至少对我来说)不是件小事。我正在使用AudioKit 4.4,尝试制作一个麦克风,从中我可以在立体声耳机的两个通道中听到声音。我正在尝试手动将audioformat设置为AudioKit.format和AKSettings.channelCount,但在耳机中,我只能听到左声道的麦克风。我错过了什么 下面是我当前设置的简化代码: AKSettings.bufferLength = .long AKSettings.fixTruncated

我面临着一个简单的问题,在谷歌上找到答案(至少对我来说)不是件小事。我正在使用
AudioKit 4.4
,尝试制作一个麦克风,从中我可以在立体声耳机的两个通道中听到声音。我正在尝试手动将audioformat设置为
AudioKit.format
AKSettings.channelCount
,但在耳机中,我只能听到左声道的麦克风。我错过了什么

下面是我当前设置的简化代码:

    AKSettings.bufferLength = .long
    AKSettings.fixTruncatedRecordings = true
    AKSettings.defaultToSpeaker = true
    AKSettings.ioBufferDuration = 0.002
    AKSettings.channelCount = 2
    AKSettings.enableRouteChangeHandling = false
    let format = AVAudioFormat(standardFormatWithSampleRate: 44100, channels: 2)
    AudioKit.format = format ?? AudioKit.format

    let mic = AKMicrophone()
    AudioKit.output = mic
    try? AudioKit.start()

如您所见,我只是初始化音频会话的
AKSettings
属性,并创建一个麦克风,连接到
AudioKit
引擎输出。我怀疑
AKSettings.channelCount=2
之前的
AKSettings
在这个问题中没有任何作用。但我一点也不明白,我做错了什么?我确信,这将是一个简单的解决方案。

因此,我找到了答案-它是class
AKStereoFieldLimiter

let mic = AKMicrophone()
let monoToStereo = AKStereoFieldLimiter(mic, amount: 1)
let micMixer = AKMixer(monoToStereo)
AudioKit.output = micMixer
另外,
AudioKit 4.7.1
中可能有一个更简单的解决方案-初始化
AKMirror(格式:AVAudioFormat?
),但我无法检查它,因为我正在使用
AudioKit 4.4
。如果有人可以尝试这种方法,请在对这个答案的评论中留下反馈