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

  • 相关阅读:
    cmake使用
    CMake...
    信息熵相关知识总结
    最强NLP模型-BERT
    问答系统总结
    检索问答模型
    文本分类-TextCNN
    机器学习-Logistic回归
    Attention注意力机制介绍
    机器学习-聚类Clustering
  • 原文地址:https://www.cnblogs.com/fusheng-it/p/6018791.html
Copyright © 2011-2022 走看看