摄像头
RCRTCCameraOutputStream 对象中提供了摄像头的管理方法。
应用程序不能自己创建 RCRTCCameraOutputStream 对象。请在 IM 连接成功后调用 RCRTCEngine
中的 defaultVideoStream 属性获取 RCRTCCameraOutputStream 对象。
打开摄像头
使用 startCapture 方法打开摄像头。
[[RCRTCEngine sharedInstance].defaultVideoStream startCapture];
关闭摄像头
使用 stopCapture 方法关闭摄像头。
[[RCRTCEngine sharedInstance].defaultVideoStream stopCapture];
切换摄像头
使用 switchCamera 方法切换采集摄像头。
[[RCRTCEngine sharedInstance].defaultVideoStream switchCamera];
选择摄像头
使用 cameraPosition 方法切换采集摄像头。通过 RCRTCDeviceCamera 指定摄像头。
[RCRTCEngine sharedInstance].defaultVideoStream.cameraPosition = RCRTCCaptureDeviceFront;
手动对焦
使用 isCameraFocusSupported 方法判断摄像头是否支持区域对焦;如果支持,还可以继续调用 setCameraFocusPositionInPreview 传入对焦点的坐标,来对对焦区域进行设置,坐标原点在 屏幕的左上角。
if ([[RCRTCEngine sharedInstance].defaultVideoStream isCameraFocusSupported])
{
CGPoint pt; // 需要对焦的点
[[RCRTCEngine sharedInstance].defaultVideoStream setCameraFocusPositionInPreview:pt];
}
区域测光
使用 isCameraExposurePositionSupported 方法判断设备是否支持区域测光;如果支持,还可以继续调用 setCameraExposurePositionInPreview 设置测光点, 设置区域测光的坐标原点为视频区域的左上角。
if ([[RCRTCEngine sharedInstance].defaultVideoStream isCameraExposurePositionSupported])
{
CGPoint pt; // 需要测光的点
[[RCRTCEngine sharedInstance].defaultVideoStream setCameraExposurePositionInPreview:pt];
}
闪光灯
使用 isCameraTorchSupported 方法判断摄像头是否支持闪光灯开关;如果支持可调用 enableCameraTorch 传入 BOOL 值,进行闪光灯开启和关闭。
if ([[RCRTCEngine sharedInstance].defaultVideoStream isCameraTorchSupported])
{
//打开闪光灯
[[RCRTCEngine sharedInstance].defaultVideoStream enableCameraTorch:YES];
//关闭闪光灯
[[RCRTCEngine sharedInstance].defaultVideoStream enableCameraTorch:NO];
}
缩放比例
使用 isCameraZoomSupported 方法判断摄像头是否支持设置缩放比例;如果支持,还可以继续调用 getCameraMaxZoomFactor 和 setCameraZoomFactor 传入对应参数,来对修改视频效果。
if ([[RCRTCEngine sharedInstance].defaultVideoStream isCameraZoomSupported])
{
//获取最大缩放比例
float zoomFactor = [[RCRTCEngine sharedInstance].defaultVideoStream getCameraMaxZoomFactor];
//设置摄像头缩放比例
[[RCRTCEngine sharedInstance].defaultVideoStream setCameraZoomFactor:2.0];
}
视频采集方向
使用 RCRTCCameraOutputStream 的 videoOrientation 属性设置摄像头的采集方向,默认值为 AVCaptureVideoOrientationPortrait。
[RCRTCEngine sharedInstance].defaultVideoStream.videoOrientation = AVCaptureVideoOrientationPortrait;
采集镜像
使用 RCRTCCameraOutputStream 的 isPreviewMirror 属性设置摄像头是否镜像采集,前置摄像头默认镜像采集,后置摄像头默认非镜像采集。
//非镜像
[RCRTCEngine sharedInstance].defaultVideoStream.isPreviewMirror = NO;
//镜像
[RCRTCEngine sharedInstance].defaultVideoStream.isPreviewMirror = YES;