音视频采集
视频采集
开启摄像头采集后,才能看到摄像头预览画面。
- (void)startCapture;
关闭摄像头采集:
- (void)stopCapture;
注意:SDK 不会自动开启摄像头采集,如果发布视频后远端看到的是黑屏,检查下本地的摄像头采集是否开启。
音频采集
音频采集由 SDK 内部自动控制,如果发布媒体流时允许发布音频流,那么在发布成功时 SDK 内部便会自动开启音频采集,同时在停止发布/离开房间时关闭音频采集。
摄像头配置
采集摄像头的位置 captureDevicePosition
,默认使用 AVCaptureDevicePositionFront
前置摄像头
@property (nonatomic, assign) AVCaptureDevicePosition captureDevicePosition;
连麦过程中,可通过调用 toggleCamera
切换摄像头
- (void)toggleCamera;
采集摄像头的旋转方向 videoOrientation
,默认使用 AVCaptureVideoOrientationPortrait
竖屏采集,横屏采集时可以配置为 AVCaptureVideoOrientationLandscapeRight
或 AVCaptureVideoOrientationLandscapeLeft
@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
预览视图
@property (nonatomic, strong, readonly) UIView *previewView;
注意:摄像头的预览视图
previewView
,需要调用 startCapture 后才会有画面。
可通过 fillMode
调整 previewView
的填充方式
@property(readwrite, nonatomic) QNVideoFillModeType fillMode;
采集分辨率
采集的视频的 sessionPreset
分辨率,默认为 AVCaptureSessionPreset640x480
@property (nonatomic, copy) NSString *sessionPreset;
帧率
采集视频数据的帧率,默认为 24
@property (nonatomic, assign) NSUInteger videoFrameRate;
预览镜像
前置摄像头预览是否开启镜像,默认为 YES
@property (nonatomic, assign) BOOL previewMirrorFrontFacing;
后置摄像头预览是否开启镜像,默认为 NO
@property (nonatomic, assign) BOOL previewMirrorRearFacing;
编码镜像
前置摄像头,对方观看时是否开启镜像,默认 NO
@property (nonatomic, assign) BOOL encodeMirrorFrontFacing;
后置摄像头,对方观看时是否开启镜像,默认 NO
@property (nonatomic, assign) BOOL encodeMirrorRearFacing;
注意:编码镜像决定了观看者的画面是否镜像。
对焦
连续自动对焦,默认为 YES
@property (nonatomic, assign, getter=isContinuousAutofocusEnable) BOOL continuousAutofocusEnable;
手动点击屏幕进行对焦,默认为 YES
@property (nonatomic, assign, getter=isTouchToFocusEnable) BOOL touchToFocusEnable;
自动对焦,适用于视频拍摄过程中用来减缓因自动对焦产生的镜头伸缩,使画面不因快速的对焦而产生抖动感,默认为 YES
@property (nonatomic, assign, getter=isSmoothAutoFocusEnabled) BOOL smoothAutoFocusEnabled;
手动对焦的位置,默认为 (0.5, 0.5), (0,0) 代表左上方, (1,1) 代表右下方
@property (nonatomic, assign) CGPoint focusPointOfInterest;
美颜
是否开启美颜
-(void)setBeautifyModeOn:(BOOL)beautifyModeOn;
注意:若美颜未开启,则设置以下三个参数无效
设置美颜 Beauty
的程度值,范围从 0 ~ 1,0 为不美颜,默认为 0.5。
-(void)setBeautify:(CGFloat)beautify;
设置美白 whiten
的程度值,范围从 0 ~ 1,0 为不美白,默认为 0.5。
-(void)setWhiten:(CGFloat)whiten;
设置红润 redden
的程度值,范围从 0 ~ 1,0 为不红润,默认为 0.5。
-(void)setWhiten:(CGFloat)whiten;
扬声器
是否使扬声器静音
@property (nonatomic, assign, getter=isMuteSpeaker) BOOL muteSpeaker;
设备授权
通过类方法 cameraAuthorizationStatus
,获取摄像头的授权状态
+ (QNAuthorizationStatus)cameraAuthorizationStatus;
调用如下方法,可获取摄像头权限,且 handler
将会在主线程中回调。
+ (void)requestCameraAccessWithCompletionHandler:(void (^)(BOOL granted))handler;
通过类方法 microphoneAuthorizationStatus
,获取麦克风的授权状态
+ (QNAuthorizationStatus)microphoneAuthorizationStatus;
调用如下方法,可获取麦克风权限,且 handler
将会在主线程中回调。
+ (void)requestMicrophoneAccessWithCompletionHandler:(void (^)(BOOL granted))handler;
导入外部数据
关于如何导入外部数据并进行发布,可以查阅发布本地音视频 一节。