码迷,mamicode.com
首页 > 移动开发 > 详细

iOS耳机操作

时间:2014-12-10 17:54:36      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   io   ar   os   使用   sp   for   

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

1
2
3
4
5
6
7
8
9
10
11
12
AVAudioSession *avSession = [AVAudioSession sharedInstance];
if ([avSession respondsToSelector:@selector(requestRecordPermission:)]) {
    [avSession requestRecordPermission:^(BOOL available) {
        if (available) {
            // 有麦克风权限
        } else {
            dispatch_async(dispatch_get_main_queue(), ^{
                [[[UIAlertView alloc] initWithTitle:@"无法录音" message:@"请在“设置-隐私-麦克风”选项中允许xx访问你的麦克风" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil] show];
            });
        }
    }];
}

iphone检测耳机插入/拔出

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
- (BOOL)isCurrentUsingBuildInMicrophone
{
    NSError *error = nil;
    BOOL result = YES;
    result = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
    if (!result) {
        NSLog(@"%@", error);
        return YES;
    }
    result = [[AVAudioSession sharedInstance] setActive:YES error:&error];
    if (!result) {
        NSLog(@"setActive failed");
        return YES;
    }
    CFDictionaryRef ards;
    UInt32 size = sizeof(CFDictionaryRef);
    OSStatus os = AudioSessionGetProperty(kAudioSessionProperty_AudioRouteDescription, &size, &ards);
    if (os == kAudioSessionNoError && ards && CFDictionaryGetValue(ards, kAudioSession_AudioRouteKey_Inputs)) {
        NSArray *inputs = (__bridge NSArray *)CFDictionaryGetValue(ards, kAudioSession_AudioRouteKey_Inputs);
        if (inputs && inputs.count > 0) {
            for (NSDictionary *dic in inputs) {
                NSString *type = dic[(__bridge NSString *)kAudioSession_AudioRouteKey_Type];
                if ([type isEqualToString:(__bridge NSString *)kAudioSessionInputRoute_BuiltInMic]) {
                    return YES;
                }
            }
        }
    } else {
        // 耳机没有mic
        return YES;
    }
    return NO;
}

iOS耳机操作

标签:des   blog   http   io   ar   os   使用   sp   for   

原文地址:http://www.cnblogs.com/lovewx/p/4155782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!