• 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

  • 相关阅读:
    asp.net超强日历
    闲话多线程的创建
    一些应该熟记于心的jQuery函数和技巧
    jQuery选择符总结
    使用OQL+SQLMAP解决ORM多表复杂的查询问题
    同样的SQL语句在查询分析器执行很快,但是网站上执行超时的诡异问题
    "开门待客"还是“送货上门”?
    使用ASP.NET MVC2+PDF.NET 构建一个简单的新闻管理程序
    使用PDF.NET数据开发框架的实体操作语言OQL构造复杂查询条件
    “批量少次”还是“少量多次”邮件通信系统效率浅谈
  • 原文地址:https://www.cnblogs.com/fusheng-it/p/6018791.html
Copyright © 2020-2023  润新知