首页 文章

AVAudioEngine从外部麦克风录制音乐

提问于
浏览
1

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

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

1 回答

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

    但是要小心,这对于简单的事情没有错误处理 . 如果您的外接麦克风已拔下或不可用,您将需要提供默认选项 .

相关问题