跳到主要内容

摄像头

打开/关闭摄像头

提示

调用 RCRTCEngine 下的 EnableCamera 打开摄像头,开始采集数据。 只能在 IM 连接成功并调用 RCRTCEngine.Create 方法之后调用。

/// <summary>
/// 打开/关闭外放
/// </summary>
/// <param name="enable”>true 打开, false 关闭</param>
/// <param name="camera”>摄像头类型</param>
/// <returns>0成功 非0失败</returns>
public int EnableCamera(bool enable, RCRTCCamera camera);
  • 参数说明:

    参数类型说明
    enablebooltrue 使用扬声器;false 使用听筒
    cameraRCRTCCameraFRONT 前置摄像头;BACK 后置摄像头
  • 示例代码:

    Engine.OnEnableCamera = (bool enabled, int code, String errorMsg) => {
    // enabled: 摄像头是否开启
    // code: 错误码
    // errorMsg: 错误信息描述
    };
    Engine.EnableCamera(true, RCRTCCamera.FRONT);

切换摄像头

提示

调用 RCRTCEngine 下的 SwitchCamera 切换前后摄像头。

/// <summary>
/// 切换前后摄像头
/// </summary>
/// <returns> 0成功 非0失败 </returns>
public int SwitchCamera();
  • 示例代码:

    Engine.OnSwitchCamera = (RCRTCCamera cameraType, int code, String errorMsg) => {
    // cameraType: RCRTCCamera.FRONT 前置摄像头; RCRTCCamera.Back 后置摄像头
    // code: 错误码
    // errorMsg: 错误信息描述
    };
    Engine.SwitchCamera();

获取摄像头

提示

调用 RCRTCEngine 下的 WhichCamera 获取当前摄像头。

/// <summary>
/// 获取当前摄像头
/// </summary>
/// <returns> `FRONT` 前置摄像头;`BACK` 后置摄像头 </returns>
public RCRTCCamera WhichCamera();
  • 示例代码:

    Engine.WhichCamera();

设置视频参数

提示

调用 RCRTCEngine 下的 SetVideoConfig 设置大小流的视频分辨率、码率、帧率等信息,支持通话过程中动态设置。

  • 示例代码:

    var videoConfig =
    RCRTCVideoConfig.Create()
    .SetMinBitrate(200)
    .SetMaxBitrate(900)
    .SetFps(RCRTCVideoFps.FPS_15)
    .SetResolution(RCRTCVideoResolution.RESOLUTION_720_1280);
    // 配置视频大流参数
    var isTinyVideo = false;
    Engine.SetVideoConfig(config, isTinyVideo);

手动对焦

提示

调用 RCRTCEngine 下的 IsCameraFocusSupported 来判断摄像头是否支持区域对焦。 对于支持的设备,可调用 SetCameraFocusPositionInPreview 进行手动对焦,设置对焦的坐标原点为视频区域的左上角。

  • 示例代码:

    if (Engine.IsCameraFocusSupported()) {
    Engine.SetCameraFocusPositionInPreview(100, 100);
    }

区域测光

提示

调用 RCRTCEngine 下的 IsCameraExposurePositionSupported 来判断摄像头是否支持区域测光。
对于支持的设备,可调用 SetCameraExposurePositionInPreview 进行区域测光设置,设置测光的坐标原点为视频区域的左上角。

  • 示例代码:

    if(Engine.IsCameraExposurePositionSupported()) {
    Engine.SetCameraExposurePositionInPreview(100, 100);
    }

采集方向

提示

调用 RCRTCEngine 下的 SetCameraCaptureOrientation 来设置摄像头采集角度。

  • 示例代码:

    Engine.SetCameraCaptureOrientation(RCRTCCameraCaptureOrientation.PORTRAIT);