只使用iPhone中的顶级麦克风
据我所知在iPhone上有2个麦克风。 1靠近audio插孔旁边的顶部,另一个是您讲话的麦克风。 默认的麦克风似乎是你说的那个。
如何以编程方式select使用哪个麦克风? 我正在使用核心audio为我的应用程序。
基本上我想用顶级麦克风进行录音。 目前当我录制底部麦克风时正在使用。 有没有办法来覆盖默认的麦克风设置?
我知道,可以通过以下来覆盖默认的扬声器设置。
UInt32 yes = YES; AudioSessionSetProperty( kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(UInt32), &yes );
iPhone上的麦克风类似吗?
谢谢。
使用AVAudioSession获得可用的input。
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs); "<AVAudioSessionPortDescription: 0x14554400, type = MicrophoneBuiltIn; name = iPhone Microphone; UID = Built-In Microphone; selectedDataSource = Back>"
然后使用这些input之一来获取availableDataSources,就像这样。
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs[0].dataSources); "<AVAudioSessionDataSourceDescription: 0x145afb00, ID = 1835216945; name = Bottom>", "<AVAudioSessionDataSourceDescription: 0x145b1870, ID = 1835216946; name = Front>", "<AVAudioSessionDataSourceDescription: 0x145b3650, ID = 1835216947; name = Back>"
我们可以看到这款iPhone上实际上有三个麦克风:正面,背面和背面。 现在您可以设置您的首选数据源。
AVAudioSessionPortDescription *port = [AVAudioSession sharedInstance].availableInputs[0]; for (AVAudioSessionDataSourceDescription *source in port.dataSources) { if ([source.dataSourceName isEqualToString:@"Back"]) { [port setPreferredDataSource:source error:nil]; } }
希望这可以帮助你快乐编码!
我2分钱快4:
class func test3Mics(){ guard let inputs = AVAudioSession.sharedInstance().availableInputs else{ return } print(inputs.debugDescription) for input in inputs{ print(input.dataSources ?? "??") } // set preferred: let preferredPort = inputs[0] if let dataSources = preferredPort.dataSources{ for source in dataSources { if source.dataSourceName=="Back" { do { try preferredPort.setPreferredDataSource(source) }catch _ { print("cannot set frontDataSource") } } } } }
- AVAudioSession:通过听筒扬声器播放audio
- 如何在扬声器上播放audio,而不是在较弱的耳机上播放audio?
- AVPlayer播放单声道audio立体声 – >单声道
- 使用单声道input和立体声输出设置audio单元iOS
- 用AVAudioEngine从AVAudioPCMBuffer播放audio
- AudioServicesPlaySystemSound知道声音何时停止
- 如何使用iOS制作简单的EQ AudioUnit(低音,中音,高音)?
- iOS xcode4 AVQueuePlayer不能播放声音
- iOS上的Phonegap 3.5媒体插件错误“无法使用AvAudioRecorder开始录制”