com.aliyun.svideosdk.multirecorder

## Interface AliyunIVideoRecorder

-     public interface AliyunIVideoRecorder

  视频录制接口 v3.22.0 新增

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `addWaterMark(EffectImage effectImage)` 添加水印素材，如果需要使用文字水印，可以通过Bitmap工具把文字转成水印
    `void` | `cancelRecording()` 取消录制视频
    `int` | `clearBackground()` 清空输出视频背景
    `void` | `destroy()` 销毁并释放资源
    `int` | `finishRecording()` 结束录制合成视频
    `Uri` | `finishRecordingForEdit()` v3.23.0新增，结束录制，并且将录制的片段描述信息保存成json文件，返回json文件的Uri，用于编辑等功能。
    `AliyunIClipManager` | `getClipManager()` 获取片段管理器
    `AliyunIVideoCapture` | `getVideoCapture()` Get the video capture configurtor
    `void` | `prepare()` 采集器准备 注意：添加完所有采集器后执行， 否则无法启动`startPreview()`、`startRecording()`
    `void` | `removeMusic()` 移除背景音乐
    `int` | `removeWaterMark(EffectImage effectImage)` 删除水印素材
    `int` | `setBackgroundColor(int color)` 设置输出视频的背景颜色
    `int` | `setBackgroundDisplayMode(int displayMode)` 设置背景图片填充方式
    `int` | `setBackgroundImage(Bitmap bitmap)` 设置输出视频的背景图片
    `void` | `setEncoderInfoCallback(EncoderInfoCallback callback)` 设置编码信息回调
    `void` | `setIsAutoClearClipVideos(boolean isAutoClear)` v3.23.0新增，设置是否清空分段视频文件，默认不清空 注意：若设置清空，则不能使用`AliyunIRecorder.finishRecordingForEdit()`
    `int` | `setMicDenoiseWeight(int denoiseWeight)` v3.27.0 新增 设置麦克风降噪权重，0~100，0表示关闭降噪，100表示降噪能力最强
    `void` | `setMixAudioWeight(int bgmWeight, int micWeight)` v3.27.0 新增 设置混音时的音量大小，开启混音模式时才生效
    `int` | `setMusic(java.lang.String path, long startTime, long duration)` 设置录制背景音乐
    `void` | `setMute(boolean isMute)` 录制静音 注意：控制的是麦克风是否静音
    `void` | `setOnAudioCallback(OnAudioCallBack callback)` 回调pcm音频数据，音频数据的格式为单通道，16位，采样率为44.1khz，
    `void` | `setOnRecordListener(OnVideoRecordListener listener)` 设置录制监听
    `void` | `setOpenMicAEC(boolean open)` v3.27.0 新增 设置麦克风是否开启回声消除
    `void` | `setOpenMixAudioMode(boolean open)` v3.27.0 新增 设置是否开启混音模式，默认不开启 若关闭，则设置背景音乐时会自动关闭麦克风录音；否则，支持背景音乐与麦克风同时开启进行混音
    `void` | `setRate(float rate)` 设置录制速率
    `int` | `startPreview()` 开启预览 注意：该方法建议在`Activity#onResume()`生命周期函数中调用
    `int` | `startRecording()` 开始录制
    `void` | `stopPreview()` 停止预览 注意：该方法建议在`Activity#onPause()`生命周期函数中调用
    `int` | `stopRecording()` 停止录制
    `int` | `updateVideoSize(int width, int height)` 更新视频输出大小
    `java.lang.String` | `version()` 获取当前接口版本号

- - ### Method Detail

    - #### getVideoCapture

          AliyunIVideoCapture getVideoCapture()

      Get the video capture configurtor
      Returns:
        AliyunIVideoCapture
      See Also:
        `AliyunIVideoCapture`

    - #### getClipManager

          AliyunIClipManager getClipManager()

      获取片段管理器
      Returns:
        片段管理器对象
      See Also:
        `AliyunIClipManager`

    - #### updateVideoSize

          int updateVideoSize(int width,
                              int height)

      更新视频输出大小
      Parameters:
        `width` -
        `height` -

    - #### prepare

          void prepare()

      采集器准备 注意：添加完所有采集器后执行， 否则无法启动`startPreview()`、`startRecording()`
      See Also:
        `AliyunIVideoCapture`

    - #### startPreview

          int startPreview()

      开启预览 注意：该方法建议在`Activity#onResume()`生命周期函数中调用

    - #### stopPreview

          void stopPreview()

      停止预览 注意：该方法建议在`Activity#onPause()`生命周期函数中调用

    - #### destroy

          void destroy()

      销毁并释放资源

    - #### setMusic

          int setMusic(java.lang.String path,
                       long startTime,
                       long duration)

      设置录制背景音乐
      Parameters:
        `path` - 音乐文件路径
        `startTime` - 音乐开始时间，单位毫秒
        `duration` - 音乐长度，单位毫秒
      Returns:
        成功返回0，失败返回对应的ErrorCode `AliyunErrorCode`

    - #### removeMusic

          void removeMusic()

      移除背景音乐

    - #### setRate

          void setRate(float rate)

      设置录制速率
      Parameters:
        `rate` - 范围[0.5 - 2.0]

    - #### setMute

          void setMute(boolean isMute)

      录制静音 注意：控制的是麦克风是否静音
      Parameters:
        `isMute` - 是否静音

    - #### startRecording

          int startRecording()

      开始录制

    - #### stopRecording

          int stopRecording()

      停止录制

    - #### finishRecording

          int finishRecording()

      结束录制合成视频

    - #### finishRecordingForEdit

          Uri finishRecordingForEdit()

      v3.23.0新增，结束录制，并且将录制的片段描述信息保存成json文件，返回json文件的Uri，用于编辑等功能。
      Returns:
        返回json文件的路径

    - #### cancelRecording

          void cancelRecording()

      取消录制视频

    - #### setOnRecordListener

          void setOnRecordListener(OnVideoRecordListener listener)

      设置录制监听
      Parameters:
        `listener` -
      See Also:
        `OnVideoRecordListener`

    - #### setEncoderInfoCallback

          void setEncoderInfoCallback(EncoderInfoCallback callback)

      设置编码信息回调
      Parameters:
        `callback` -
      See Also:
        `EncoderInfoCallback`

    - #### setOnAudioCallback

          void setOnAudioCallback(OnAudioCallBack callback)

      回调pcm音频数据，音频数据的格式为单通道，16位，采样率为44.1khz，
      Parameters:
        `callback` -

    - #### version

          java.lang.String version()

      获取当前接口版本号
      Returns:
        返回版本号字符串

    - #### addWaterMark

          int addWaterMark(EffectImage effectImage)

      添加水印素材，如果需要使用文字水印，可以通过Bitmap工具把文字转成水印
      Parameters:
        `effectImage` -
      Returns:
        成功返回0，失败返回对应的ErrorCode

    - #### removeWaterMark

          int removeWaterMark(EffectImage effectImage)

      删除水印素材
      Parameters:
        `effectImage` - 与`addWaterMark(EffectImage)`传入参数相同

    - #### setBackgroundColor

          int setBackgroundColor(int color)

      设置输出视频的背景颜色
      Parameters:
        `color` -
      Returns:
        成功返回 `AliyunErrorCode.OK`，失败返回对应的错误码

    - #### setBackgroundDisplayMode

          int setBackgroundDisplayMode(int displayMode)

      设置背景图片填充方式
      Parameters:
        `displayMode` - 0：裁切 1：填充 2：拉伸
      Returns:
        成功返回 `AliyunErrorCode.OK`，失败返回对应的错误码

    - #### setBackgroundImage

          int setBackgroundImage(Bitmap bitmap)

      设置输出视频的背景图片
      Parameters:
        `bitmap` -
      Returns:
        成功返回 `AliyunErrorCode.OK`，失败返回对应的错误码

    - #### clearBackground

          int clearBackground()

      清空输出视频背景
      Returns:

    - #### setIsAutoClearClipVideos

          void setIsAutoClearClipVideos(boolean isAutoClear)

      v3.23.0新增，设置是否清空分段视频文件，默认不清空 注意：若设置清空，则不能使用`AliyunIRecorder.finishRecordingForEdit()`
      Parameters:
        `isAutoClear` -

    - #### setMicDenoiseWeight

          int setMicDenoiseWeight(int denoiseWeight)

      v3.27.0 新增 设置麦克风降噪权重，0~100，0表示关闭降噪，100表示降噪能力最强
      Parameters:
        `denoiseWeight` - 0表示关闭降噪，100表示降噪能力最强
      Returns:
        正确返回0，错误返回错误码

    - #### setOpenMicAEC

          void setOpenMicAEC(boolean open)

      v3.27.0 新增 设置麦克风是否开启回声消除
      Parameters:
        `open` - true：开启 false：关闭

    - #### setOpenMixAudioMode

          void setOpenMixAudioMode(boolean open)

      v3.27.0 新增 设置是否开启混音模式，默认不开启 若关闭，则设置背景音乐时会自动关闭麦克风录音；否则，支持背景音乐与麦克风同时开启进行混音
      Parameters:
        `open` - true：开启 false：关闭

    - #### setMixAudioWeight

          void setMixAudioWeight(int bgmWeight,
                                 int micWeight)

      v3.27.0 新增 设置混音时的音量大小，开启混音模式时才生效
      Parameters:
        `bgmWeight` - 背景音乐声音大小 [0~100]
        `micWeight` - 麦克风声音大小 [0~100]