2

我已经使用 AVAudioEngine 设置了一个简单的图表,以简单地获取默认输入节点的数据并将其放入耳机(音频监控) - 这应该只是让您的耳机复制它通过麦克风听到的任何内容,它会复制背景噪音被重定向到你的耳朵,但是,当运行这个应用程序时,有一个问题:它总是会接受内置麦克风的输入,即使外部麦克风插入 iPad。

AVAudioSession 告诉我,输入应该使用外部麦克风(通过 [[AVAudioSession sharedInstance] currentRoute]),如果我使用 AVAudioRecorder 录制音频,它确实使用该输入,但不是 AVAudioEngine,它坚持内置麦克风。难道我做错了什么?有没有我错过的设置?

4

1 回答 1

3

尝试将首选输入设置为外部麦克风:

    //get all avaialable Inputs
    var listOfInputs = AVAudioSession.sharedInstance().availableInputs
    println(listOfInputs)

    //pick which one you want (change index)
    var availableInput: AVAudioSessionPortDescription = listOfInputs[0] as AVAudioSessionPortDescription

    //set the Preffered Input
     AVAudioSession.sharedInstance().setPreferredInput(availableInput, error: nil)

不过要小心,为了简单起见,这没有错误处理。如果您的外部麦克风已拔下或不可用,您将需要提供默认选项。

于 2015-03-31T13:47:07.357 回答