zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    思源:秒级体验百亿级数据量监控钻取
    禧云Redis跨机房双向同步实践
    谈谈数据中台技术体系
    RCA:收单设备调用云端接口频繁超时排查总结
    技术上的“深淘滩,低作堰”
    企业私有源代码上传github致入侵之大疆案判决了
    那些年我们一起犯过的错
    异地双活的四个误区
    没有预见性你凭什么晋升
    中国IT史上两大严重事故对我们的警醒及预防措施
  • 原文地址:https://www.cnblogs.com/fusheng-it/p/6018791.html
Copyright © 2011-2022 走看看