iOS 耳机状态的检测、监听

释放双眼,带上耳机,听听看~!

当前是否存在耳机:

- (BOOL)isEarphonePluggedIn {
    AVAudioSessionRouteDescription* route = [[AVAudioSession sharedInstance] currentRoute];
    for (AVAudioSessionPortDescription* desc in [route outputs]) {
        if ([[desc portType] isEqualToString:AVAudioSessionPortHeadphones])
            return YES;
    }
    return NO;
}

耳机状态的监听:

//监听耳机的插拔
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(earphoneStatusChanged:) name:AVAudioSessionRouteChangeNotification object:[AVAudioSession sharedInstance]];

//相应的事件
- (void) earphoneStatusChanged:(NSNotification *)notification {
    NSDictionary *interuptionDict = notification.userInfo;
    NSInteger roteChangeReason = [[interuptionDict valueForKey:AVAudioSessionRouteChangeReasonKey] integerValue];
    
    switch (roteChangeReason) {
        case AVAudioSessionRouteChangeReasonNewDeviceAvailable:
            //插入耳机
            NSLog(@"插入耳机");
            //设置屏幕亮度
             [[UIScreen mainScreen] setBrightness: 0.0];
            break;
            
        case AVAudioSessionRouteChangeReasonOldDeviceUnavailable:
            //拔出耳机
            //设置屏幕亮度
            [[UIScreen mainScreen] setBrightness: 1.0];
            NSLog(@"拔出耳机");
            
            break;
            
    }
    
}

人已赞赏
iOS文章

iOS 常见数据格式转换

2019-10-14 13:27:31

iOS文章

iOS --tableView 刷新数据后滚动到指定位置

2019-10-14 14:22:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索