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

  • 相关阅读:
    Windows下获取逻辑cpu数量和cpu核数量
    QtScript, QML, Quick1, Quick2, Declarative 之间的关系
    将QT开发的界面程序封装成DLL,在VC中成功调用(必须有消息循环,所以使用了QTWinmigrate,附CSDN可下载的Demo)
    QPixmap的缓冲区
    Qt+QZXing编写识别二维码的程序
    ASP.NET 5:依赖注入
    angularJS之使用指令封装DOM操作
    Windows 10技术布局,谈微软王者归来
    Microsoft dotnetConf 2015
    Net社区虚拟大会
  • 原文地址:https://www.cnblogs.com/fusheng-it/p/6018791.html
Copyright © 2011-2022 走看看