AVAudioEngine从外部麦克风录制音乐

时间:2015-03-31 08:08:40

标签: avaudiorecorder avaudiosession avaudioengine

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

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

1 个答案:

答案 0 :(得分:2)

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

    //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)

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