如何选择外接麦克风

Veg*_*lot 3 core-audio audio-recording ipad ios swift3

我已成功为iOS编写了一个使用AVAudioRecorder的简单录制应用程序.到目前为止它可以与内置麦克风或外接麦克风配合使用,如果它插入耳机插孔.如何选择通过USB"闪电端口"连接的音频源?我是否需要深入了解Core Audio?

具体来说,我正在尝试连接Apogee Electronics ONE USB音频接口.

dav*_*234 7

使用AVAudioSession,获取availableInputs.返回值是AVAudioSessionPortDescriptions数组.通过数组检查portType属性以匹配您的首选端口类型,然后使用端口描述设置preferredInput.

迅速:

let audioSession = AVAudioSession.sharedInstance()
if let desc = audioSession.availableInputs?.first(where: { (desc) -> Bool in
    return desc.portType == AVAudioSessionPortUSBAudio
}){
    do{
        try audioSession.setPreferredInput(desc)
    } catch let error{
        print(error)
    }
}
Run Code Online (Sandbox Code Playgroud)

Objective-C的:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSString *preferredPortType = AVAudioSessionPortUSBAudio;
for (AVAudioSessionPortDescription *desc in audioSession.availableInputs) {
    if ([desc.portType isEqualToString: preferredPortType]) {
        [audioSession setPreferredInput:desc error:nil];            
    }
}
Run Code Online (Sandbox Code Playgroud)