iOS耳机操作

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

iOS在7之后增加的麦克风权限的申请,代码如下:

123456789101112

AVAudiosession*avSession=[AVAudioSessionsharedInstance];if([avSessionrespondsToSelector:@selector(requestRecordPermission:)]){[avSessionrequestRecordPermission:^(BOOLavailable){if(available){// 有麦克风权限}else{dispatch_async(dispatch_get_main_queue(),^{[[[UIAlertViewalloc]initWithTitle:@"无法录音"message:@"请在“设置-隐私-麦克风”选项中允许xx访问你的麦克风"delegate:nilcancelButtonTitle:@"确定"otherButtonTitles:nil]show];});}}];}

iphone检测耳机插入/拔出

判断手机当前是否使用的是内置的麦克风(可以用此方法判断插入的耳机是否有麦克风)

123456789101112131415161718192021222324252627282930313233

-(BOOL)isCurrentUsingBuildInMicrophone{NSError*error=nil;BOOLresult=YES;result=[[AVAudioSessionsharedInstance]setCategory:AVAudioSessionCategoryPlayAndRecorderror:&error];if(!result){NSLog(@"%@",error);returnYES;}result=[[AVAudioSessionsharedInstance]setActive:YESerror:&error];if(!result){NSLog(@"setActive failed");returnYES;}CFDictionaryRefards;UInt32size=sizeof(CFDictionaryRef);OSStatusos=AudioSessionGetPRoperty(kAudioSessionProperty_AudioRouteDescription,&size,&ards);if(os==kAudioSessionNoError&&ards&&CFDictionaryGetValue(ards,kAudioSession_AudioRouteKey_Inputs)){NSArray*inputs=(__bridgeNSArray*)CFDictionaryGetValue(ards,kAudioSession_AudioRouteKey_Inputs);if(inputs&&inputs.count>0){for(NSDictionary*dicininputs){NSString*type=dic[(__bridgeNSString*)kAudioSession_AudioRouteKey_Type];if([typeisEqualToString:(__bridgeNSString*)kAudioSessionInputRoute_BuiltInMic]){returnYES;}}}}else{// 耳机没有micreturnYES;}returnNO;}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航