AVAudioEngine 从外部麦克风录制音乐
AVAudioEngine recording music from external microphone
我已经使用 AVAudioEngine 设置了一个简单的图表,以简单地获取默认输入节点的数据并将其放入耳机(音频监控) - 这应该只是让您的耳机复制它通过麦克风听到的任何内容,并且它确实如此,当 运行 这个应用程序时,背景噪音会直接进入您的耳朵,但是,有一个问题:它总是采用内置麦克风的输入,即使外部麦克风已插入 iPad.
AVAudioSession 告诉我,输入应该使用外部麦克风(通过 [[AVAudioSession sharedInstance] currentRoute]),如果我用 AVAudioRecorder 录制音频,它确实使用那个输入,但不是 AVAudioEngine,它坚持内置麦克风。难道我做错了什么?有没有我错过的设置?
尝试将首选输入设置为外部麦克风:
//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)
不过要小心,为了简单起见,这没有错误处理。如果您的外部麦克风未插入或不可用,您将需要提供默认选项。
我已经使用 AVAudioEngine 设置了一个简单的图表,以简单地获取默认输入节点的数据并将其放入耳机(音频监控) - 这应该只是让您的耳机复制它通过麦克风听到的任何内容,并且它确实如此,当 运行 这个应用程序时,背景噪音会直接进入您的耳朵,但是,有一个问题:它总是采用内置麦克风的输入,即使外部麦克风已插入 iPad.
AVAudioSession 告诉我,输入应该使用外部麦克风(通过 [[AVAudioSession sharedInstance] currentRoute]),如果我用 AVAudioRecorder 录制音频,它确实使用那个输入,但不是 AVAudioEngine,它坚持内置麦克风。难道我做错了什么?有没有我错过的设置?
尝试将首选输入设置为外部麦克风:
//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)
不过要小心,为了简单起见,这没有错误处理。如果您的外部麦克风未插入或不可用,您将需要提供默认选项。