iOS深入探索直播推拉流实现流程(二:推流权限判断 )
推流权限判断实际上是对手机访问相机和麦克风权限的判断。如果连权限都没有怎么直播。需要注意的是,在iOS10以后,访问权限是需要在pilst里面申请的,这里自行脑补。
在LFLiveKit里面是没有这一步的,楼主不才,写了一个比较简单的权限检查方法以供参考。
#pragma mark --检查相机和麦克风的权限 //检查相机权限 - (void)checkCaptureDeviceEnableCheckCaptureVideo:(void(^)(BOOL isVideoSucc,NSString * err))succ{ __weak ViewController * weakSelf = self; if ([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]==AVAuthorizationStatusNotDetermined) { [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) { if (granted) { [weakSelf checkCaptureAudioDeviceEnableCheckCaptureVideo:^(BOOL isAutioSucc, NSString *err) { if (isAutioSucc) {succ(YES,nil);} else{succ(NO,err);} }]; }else{ succ(NO,@"app需要访问您的摄像头。 请启用摄像头-设置/隐私/摄像头"); } }]; }else if([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]==AVAuthorizationStatusAuthorized){ [self checkCaptureAudioDeviceEnableCheckCaptureVideo:^(BOOL isAutioSucc, NSString *err) { if (isAutioSucc) {succ(YES,nil);} else{succ(NO,err);} }]; }else{ succ(NO,@"app需要访问您的摄像头。 请启用摄像头-设置/隐私/摄像头"); } } //检查麦克风权限 - (void)checkCaptureAudioDeviceEnableCheckCaptureVideo:(void(^)(BOOL isAutioSucc,NSString * err))succ{ if ([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio]==AVAuthorizationStatusNotDetermined) { [AVCaptureDevice requestAccessForMediaType:AVMediaTypeAudio completionHandler:^(BOOL granted) { if (granted) {succ(granted,nil);} else{succ(NO,@"app需要访问您的麦克风。 请启用麦克风-设置/隐私/麦克风");} }]; }else if([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio]==AVAuthorizationStatusAuthorized){ succ(YES,nil); }else{ succ(NO,@"app需要访问您的麦克风。 请启用麦克风-设置/隐私/麦克风"); } }
权限判断完成以后就相当于正式进入了LFLiveKit的学习。
-----------------------------分割线-------------------------------------
新手上路,共同进步群号:240970537