跳到主要内容

摄像头

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 方法判断摄像头是否支持设置缩放比例;如果支持,还可以继续调用 getCameraMaxZoomFactorsetCameraZoomFactor 传入对应参数,来对修改视频效果。

if ([[RCRTCEngine sharedInstance].defaultVideoStream isCameraZoomSupported])
{
//获取最大缩放比例
float zoomFactor = [[RCRTCEngine sharedInstance].defaultVideoStream getCameraMaxZoomFactor];
//设置摄像头缩放比例
[[RCRTCEngine sharedInstance].defaultVideoStream setCameraZoomFactor:2.0];
}

视频采集方向

使用 RCRTCCameraOutputStreamvideoOrientation 属性设置摄像头的采集方向,默认值为 AVCaptureVideoOrientationPortrait。

[RCRTCEngine sharedInstance].defaultVideoStream.videoOrientation = AVCaptureVideoOrientationPortrait;

采集镜像

使用 RCRTCCameraOutputStreamisPreviewMirror 属性设置摄像头是否镜像采集,前置摄像头默认镜像采集,后置摄像头默认非镜像采集。

//非镜像
[RCRTCEngine sharedInstance].defaultVideoStream.isPreviewMirror = NO;
//镜像
[RCRTCEngine sharedInstance].defaultVideoStream.isPreviewMirror = YES;