| | |
| | | UIView *TopView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, APP_TOP_BAR_HEIGHT)]; |
| | | TopView.backgroundColor = HEXCOLORA(0xF9F9F9,1.0); |
| | | [TopView addSubview:self.backButton]; |
| | | [TopView addSubview:self.moreButton]; |
| | | // [TopView addSubview:self.moreButton]; |
| | | [self.view addSubview:TopView]; |
| | | TopView.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.25].CGColor; |
| | | TopView.layer.shadowOffset = CGSizeMake(0,0.5); |
| | |
| | | return; |
| | | } |
| | | //初始化视频采集Capture |
| | | [self requestAccessForAVMediaType:AVMediaTypeVideo]; |
| | | if (isAccessVideo) { |
| | | if(![_es initVideoCaptureSession]){ |
| | | NSLog(@"VideoCaptureSession 初始化失败"); |
| | | } |
| | | } |
| | | // [self requestAccessForAVMediaType:AVMediaTypeVideo]; |
| | | // if (isAccessVideo) { |
| | | // if(![_es initVideoCaptureSession]){ |
| | | // NSLog(@"VideoCaptureSession 初始化失败"); |
| | | // } |
| | | // } |
| | | //初始化AudioSession |
| | | _sessionHelper = [[AudioSessionHelper alloc]init]; |
| | | [_sessionHelper setAudioSession]; |
| | |
| | | //在viewDidLoad中 调用requestAccessForAVMediaType: 是为了节约初始化的时间 |
| | | //在viewDidAppear中调用requestAccessForAVMediaType: 是为了弹出提示打开权限的Alert |
| | | //测试的时候发现如下情况:如果只把授权方法放到ViewDidAppear方法中处理,如果没有授权在初始化采集器时会失败。同样AlertView会因为View没有didLoad而导致present不出来 |
| | | if (!isAccessVideo || !isAccessAudio) { |
| | | |
| | | // if (!isAccessVideo || !isAccessAudio) { |
| | | // [self requestAccessForAVMedia]; |
| | | // } |
| | | |
| | | if (!isAccessAudio) { |
| | | [self requestAccessForAVMedia]; |
| | | } |
| | | } |
| | |
| | | |
| | | // 这里是考虑到用户没有授权,之后通过AlertAction跳转到设置页面授权后再回到APP时做的重新检测 |
| | | //跳转到设置页面,授权后返回页面,继续初始化采集器 |
| | | if (isAccessAudio && isAccessVideo) { |
| | | return; |
| | | } |
| | | if (isAccessVideo && !isAccessAudio) { |
| | | if(!isAccessAudio){ |
| | | [self requestAccessForAVMediaType:AVMediaTypeAudio]; |
| | | if (isAccessAudio) { |
| | | [_es initAudioCaptureSession]; |
| | | } |
| | | }else if (!isAccessVideo && isAccessAudio){ |
| | | [self requestAccessForAVMediaType:AVMediaTypeVideo]; |
| | | if (isAccessVideo) { |
| | | [_es initVideoCaptureSession]; |
| | | } |
| | | |
| | | }else if (!isAccessVideo && !isAccessAudio){ |
| | | [self requestAccessForAVMediaType:AVMediaTypeAudio]; |
| | | [self requestAccessForAVMediaType:AVMediaTypeVideo]; |
| | | if (isAccessAudio) { |
| | | [_es initAudioCaptureSession]; |
| | | } |
| | | if (isAccessVideo) { |
| | | [_es initVideoCaptureSession]; |
| | | } |
| | | } |
| | | // if (isAccessAudio && isAccessVideo) { |
| | | // return; |
| | | // } |
| | | // if (isAccessVideo && !isAccessAudio) { |
| | | // [self requestAccessForAVMediaType:AVMediaTypeAudio]; |
| | | // if (isAccessAudio) { |
| | | // [_es initAudioCaptureSession]; |
| | | // } |
| | | // }else if (!isAccessVideo && isAccessAudio){ |
| | | //// [self requestAccessForAVMediaType:AVMediaTypeVideo]; |
| | | //// if (isAccessVideo) { |
| | | //// [_es initVideoCaptureSession]; |
| | | //// } |
| | | // |
| | | // }else if (!isAccessVideo && !isAccessAudio){ |
| | | // [self requestAccessForAVMediaType:AVMediaTypeAudio]; |
| | | //// [self requestAccessForAVMediaType:AVMediaTypeVideo]; |
| | | // if (isAccessAudio) { |
| | | // [_es initAudioCaptureSession]; |
| | | // } |
| | | //// if (isAccessVideo) { |
| | | //// [_es initVideoCaptureSession]; |
| | | //// } |
| | | // } |
| | | } |
| | | - (void)willEnterBackground:(NSNotification *)notification { |
| | | isBackGround = YES; |
| | |
| | | if (!isAccessAudio) { |
| | | [self requestAccessForAVMediaType:AVMediaTypeAudio]; |
| | | } |
| | | if (!isAccessVideo) { |
| | | [self requestAccessForAVMediaType:AVMediaTypeVideo]; |
| | | } |
| | | // if (!isAccessVideo) { |
| | | //// [self requestAccessForAVMediaType:AVMediaTypeVideo]; |
| | | // } |
| | | if (!iSAudioNotDetermined && iSVideoNotDetermined){ |
| | | [self creatAlertViewWith:@"授权请求" message:@"麦克风没有授权,请在设置中开启权限,否则将影响通讯功能。" cancel:@"确定"]; |
| | | }else if(iSAudioNotDetermined && !iSVideoNotDetermined){ |