com.aliyun.svideosdk.editor

## Interface AliyunIEditor

-     public interface AliyunIEditor

  An interface for editing video files. Allows users to add effects and preview videos.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `addAnimationFilter(EffectFilter filter)` Deprecated. from v3.27.0，use `addAnimationFilter(TrackEffectFilter)`instead
    `int` | `addAnimationFilter(TrackEffectFilter filter)` Adds an animated filter.
    `int` | `addFrameAnimation(ActionBase action)` Adds an animation to a stream or material.
    `int` | `addImage(EffectPicture picture)` Deprecated. from v3.27.0，use the class `com.aliyun.svideosdk.editor.impl.AliyunPasterControllerImage` from `getPasterManager()` instead.
    `int` | `addRunningDisplayMode(VideoDisplayMode mode, int streamId, long startTimeMills, long durationMills)` Deprecated.
    `int` | `addTailWaterMark(java.lang.String imagePath, float sizeX, float sizeY, float posX, float posY, long durationUs)` Adds a watermark to the end of the video.
    `int` | `addTailWaterMark(TrackEffectWaterMark trackEffectWaterMark, long duration, java.util.concurrent.TimeUnit timeUnit)` Adds a watermark to the end of the video.
    `int` | `applyAudioEffect(int id, AudioEffectType type, int weight)` Adds a sound effect.
    `int` | `applyBlurBackground(int streamId, long startTimeMills, long durationMills, float blurRadius)` Adds a blurred background.
    `int` | `applyDub(EffectBean effect)` Deprecated. from v3.27.0，use `applyDub(TrackAudioStream)` instead.
    `int` | `applyDub(TrackAudioStream effectStream)` Adds voiceover to a time period.
    `int` | `applyFilter(EffectBean effect)` Deprecated. from v3.27.0, use `applyFilter(TrackEffectFilter)` instead.
    `int` | `applyFilter(TrackEffectFilter effectFilter)` Applies a filter.
    `int` | `applyLutFilter(LUTEffectBean effect)` Added in v3.27.0
    `int` | `applyMusic(EffectBean effect)` Deprecated. from v3.27.0，use `applyMusic(TrackAudioStream)` instead.
    `int` | `applyMusic(TrackAudioStream effectStream)` Adds music to a time period.
    `int` | `applyMusicMixWeight(int id, int weight)` Deprecated.
    `int` | `applyMusicWeight(int id, int weight)` Sets the volume of an audio stream.
    `int` | `applyMV(EffectBean effect)` Deprecated. from v3.27.0, use `applyMV(TrackEffectMV)` instead.
    `int` | `applyMV(TrackEffectMV effect)` Applies an MV effect.
    `int` | `applySourceChange()` Applies changes to video clips.
    `int` | `applyWaterMark(java.lang.String imgPath, float sizeX, float sizeY, float posX, float posY)` Applies a watermark.
    `int` | `applyWaterMark(TrackEffectWaterMark trackEffectWaterMark)` Applies a watermark.
    `int` | `audioEffect(int id, AudioEffectType type, int weight)` Deprecated. from v3.27.0，use `applyAudioEffect(int, AudioEffectType, int)` instead.
    `int` | `cancelCompose()` Cancels the composition process.
    `void` | `clearAllAnimationFilter()` Removes all animated filters.
    `int` | `compose(AliyunVideoParam param, java.lang.String outputPath, AliyunIComposeCallBack callback)` Starts the composition process.
    `AliyunPasterManager` | `createPasterManager()` Deprecated. from v3.27.0，use `getPasterManager()` instead.
    `AliyunRollCaptionComposer` | `createRollCaptionComposer()` Creates a roll caption composer.
    `int` | `deleteBlurBackground(int streamId, int id)` Deletes a blurred background.
    `int` | `deleteTimeEffect(int id)` Deletes a timeline effect.
    `int` | `denoise(int id, boolean needDenoise)` Deprecated.
    `int` | `denoise(int id, int denoiseWeight)` Denoises an audio stream.
    `int` | `draw(long time)` Draws a frame at a point in time.
    `int` | `draw(long time, java.util.concurrent.TimeUnit timeUnit)` Draws a frame at a point in time.
    `AliyunLogInfo` | `getAliyunLogInfo()` Gets log information.
    `long` | `getClipStartTime(int clipIndex)`
    `Bitmap` | `getCurrentFrame()` Get current frame image.
    `long` | `getCurrentPlayPosition()` Gets the current position on the playback timeline.
    `long` | `getCurrentStreamPosition()` Gets the current position on the stream timeline.
    `long` | `getDuration()` Gets the duration of the playback timeline.
    `AliyunEditorProject` | `getEditorProject()` Added in v3.23.0
    `int` | `getFilterLastApplyId()` Gets the id of the last added filter.
    `int` | `getMusicLastApplyId()` Gets the id of the last added music effect.
    `int` | `getMVLastApplyId()` Gets the id of the last added MV effect.
    `Paint` | `getPaintLastApply()` Gets the id of the last used paint.
    `AliyunPasterManager` | `getPasterManager()` Get the sticker manager
    `AliyunPasterRender` | `getPasterRender()` Deprecated. from v3.27.0，use `getPasterManager()` instead.
    `AliyunIPipManager` | `getPipManager()` Added in v3.25.0
    `AliyunIPlayerController` | `getPlayerController()` Get tht player controlelr interface
    `AliyunIProjectInfo` | `getProjectInfo()`
    `int` | `getRotation()` Gets the angle of rotation.
    `AliyunISourcePartManager` | `getSourcePartManager()` Gets the clip manager.
    `long` | `getStreamDuration()` Gets the duration of the video stream.
    `TimeEffectType` | `getTimeEffect()` Gets the timeline effect.
    `int` | `getVideoHeight()` Gets the video height.
    `int` | `getVideoWidth()` Gets the video width.
    `int` | `init(SurfaceView surfaceView, Context context)` Initializer.
    `int` | `init(SurfaceView surfaceView, Context context, int surfaceWidth, int surfaceHeight)` Initializer
    `int` | `invert()` Starts playback backwards.
    `boolean` | `isAudioSilence()` Gets whether playback is muted.
    `boolean` | `isPaused()` Gets whether playback is paused.
    `boolean` | `isPlaying()`
    `AliyunICanvasController` | `obtainCanvasController(Context context, int w, int h)` Gets a doodle controller.
    `void` | `onDestroy()` The final lifecycle callback.
    `int` | `pause()` Pauses playback.
    `int` | `play()` Starts playback.
    `int` | `rate(float rate, long startTimeMills, long durationMills, boolean needOriginDuration)` Sets the playback rate.
    `void` | `removeAnimationFilter(EffectFilter filter)` Deprecated. from v3.27.0废弃, use `removeAnimationFilter(TrackEffectFilter)` instead.
    `void` | `removeAnimationFilter(TrackEffectFilter filter)` Removes an animated filter.
    `int` | `removeAudioEffect(int id, AudioEffectType type)` Removes a sound effect.
    `int` | `removeAudioFadeIn(int id)` added in v3.20
    `int` | `removeAudioFadeOut(int id)` added in v3.20
    `int` | `removeDub(EffectBean effect)` Deprecated. from v3.27.0，use `removeDub(TrackAudioStream)` instead.
    `int` | `removeDub(TrackAudioStream effectStream)` Removes voiceover.
    `int` | `removeFilter()` Remove a filter.
    `int` | `removeFrameAnimation(ActionBase action)` Removes an animation.
    `void` | `removeImage(EffectPicture picture)` Deprecated. from v3.27.0，use the class `com.aliyun.svideosdk.editor.impl.AliyunPasterControllerImage` from `getPasterManager()` instead.
    `int` | `removeMusic(EffectBean effect)` Deprecated. from v3.27.0，use `removeMusic(TrackAudioStream)`} instead.
    `int` | `removeMusic(TrackAudioStream effectStream)` Removes music.
    `int` | `removeRunningDisplayMode(int streamId, int id)` Deprecated.
    `int` | `repeat(int times, long startTimeMills, long durationMills, boolean needOriginDuration)` Repeats playback.
    `int` | `replay()` Restarts playback.
    `int` | `resetEffect(EffectType effectType)` Removes a type of effect.
    `int` | `resetVideoAugmentation(int streamId, VideoAugmentationType type)` Added in v3.19.0
    `int` | `resume()` Resumes playback.
    `int` | `saveEffectToLocal()` Saves all effects to a local path.
    `int` | `seek(long time)` Seeks to a point in time.
    `int` | `seek(long time, java.util.concurrent.TimeUnit timeUnit)` Seeks to a point in time.
    `void` | `setAnimationRestoredListener(OnAnimationFilterRestored li)` Deprecated. from v3.27.0，use`setOnAnimationRestoredListener(OnAnimationFilterRestoredListener)` instead.
    `int` | `setAudioFadeIn(int id, ShapeType shapeType, long duration)` added in v3.20
    `int` | `setAudioFadeOut(int id, ShapeType shapeType, long duration)` added in v3.20
    `void` | `setAudioSilence(boolean silence)` Mutes or unmutes playback.
    `int` | `setDisplayMode(VideoDisplayMode mode)` Sets the video display mode.
    `int` | `setDisplayView(SurfaceView surfaceView)` Sets the display view.
    `int` | `setDisplayView(TextureView textureView)` Sets the display view.
    `int` | `setFillBackgroundColor(int color)` Sets the background color.
    `int` | `setHorizontalFlip(int streamId, boolean flip)` Added in v3.31.0
    `void` | `setMonitorSurfaceChange(boolean monitor)` Sets whether to monitor the change of the surface.
    `void` | `setOnAnimationRestoredListener(OnAnimationFilterRestoredListener li)` Sets the callback when an animated filter is restored.
    `void` | `setOutputPath(java.lang.String path)` Sets the output path.
    `int` | `setTransition(int index, TransitionBase transition)` Sets the transition duration.
    `int` | `setTransition(java.util.Map<java.lang.Integer,TransitionBase> transitions)` Sets the transition duration.
    `int` | `setVideoAugmentation(int streamId, VideoAugmentationType type, float value)` Added in v3.19.0
    `int` | `setVolume(int volume)` Sets volume.
    `int` | `stop()` Stops playback.
    `int` | `updateAnimationFilter(EffectFilter filter)` Deprecated. from v3.27.0，use `updateAnimationFilter(TrackEffectFilter)`instead
    `int` | `updateAnimationFilter(TrackEffectFilter filter)` update an animated filter params.
    `int` | `updateCaption(AliyunCaption caption)` Added in v3.27.0
    `void` | `updateCover(Source source)` Added in v3.25.0
    `int` | `updateTransition(int clipIndex, TransitionBase transitionBase)` update the custom transition.
    `java.lang.String` | `version()` Gets the SDK version.

- - ### Method Detail

    - #### setMonitorSurfaceChange

          void setMonitorSurfaceChange(boolean monitor)

      Sets whether to monitor the change of the surface. This method must be invoked before `init(SurfaceView, Context)`.
      Parameters:
        `monitor` -

    - #### init

          int init(SurfaceView surfaceView,
                   Context context)

      Initializer.
      Parameters:
        `surfaceView` -
      Returns:
        `AliyunErrorCode.ERROR_PROJECT_NULL` `AliyunErrorCode.ERROR_LICENSE_FAILED` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_INIT_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_CREATE_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_RE_CREATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_SET_DISPLAY_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_MUXER_ERROR_CREAT_OUTPUT` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_MUXER_ERROR_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_MUXER_ERROR_INVALIDATE_PARAM` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_MUXER_ERROR_FIND_ENCODER` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_MUXER_ERROR_NEW_STREAM` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_VIDEO_ENCODER_CREATE_ENCODER_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_VIDEO_ENCODER_ERROR_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_ENCODER_ERROR_INPUT` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_ENCODER_WIDTHOUT_MATCH_ENCODER` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_ENCODER_ERROR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_EDITORLAYOUT_INVALID_SIZE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_RENDER_INIT_SPEAKER_FAILED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` if the resolution parameter is null or invalid in the import method.

    - #### init

          int init(SurfaceView surfaceView,
                   Context context,
                   int surfaceWidth,
                   int surfaceHeight)

      Initializer
      Parameters:
        `surfaceView` -
        `context` -
        `surfaceWidth` -
        `surfaceHeight` -
      Returns:

    - #### setDisplayView

          int setDisplayView(SurfaceView surfaceView)

      Sets the display view. This method must be invoked after `init(SurfaceView, Context)`.
      Parameters:
        `surfaceView` -
      Returns:
        `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` if the initialization fails. `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` if surfaceView is null.

    - #### setDisplayView

          int setDisplayView(TextureView textureView)

      Sets the display view. This method must be invoked after `init(SurfaceView, Context)`. It is recommended not to use TextureView if there is no special needs.
      Parameters:
        `textureView` -
      Returns:
        `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` if the initialization fails. `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` if surfaceView is null.

    - #### getPlayerController

          AliyunIPlayerController getPlayerController()

      Get tht player controlelr interface

      Added in v3.27.0

      Returns:
        `AliyunIPlayerController`

    - #### play

          int play()

      Starts playback.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_START_ERROR`

    - #### replay

          int replay()

      Restarts playback.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_START_ERROR`

    - #### seek

          int seek(long time)

      Seeks to a point in time.
      Parameters:
        `time` - The point in time. Unit: microseconds.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_SEEK_IN_OFFSET` `AliyunEditorErrorCode.SVIDEO_EDITOR_SEEK_ERROR` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_SEEK_FAILED`

    - #### seek

          int seek(long time,
                   java.util.concurrent.TimeUnit timeUnit)

      Seeks to a point in time.

      Added in v3.27.0

      Parameters:
        `time` - The point in time.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_SEEK_IN_OFFSET` `AliyunEditorErrorCode.SVIDEO_EDITOR_SEEK_ERROR` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_SEEK_FAILED`

    - #### draw

          int draw(long time)

      Draws a frame at a point in time. This method must be invoked when the playback is paused. If not, the pause method is mandatorily invoked.
      Parameters:
        `time` - The point in time. Unit: microseconds.
      Returns:
        `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE`

    - #### draw

          int draw(long time,
                   java.util.concurrent.TimeUnit timeUnit)

      Draws a frame at a point in time. This method must be invoked when the playback is paused. If not, the pause method is mandatorily invoked. Added v3.27.0
      Parameters:
        `time` - The point in time.
      Returns:
        `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE`

    - #### getCurrentFrame

          Bitmap getCurrentFrame()

      Get current frame image. It is recommended to call in the child thread Added in v3.25.0
      Returns:
        frame image. Return null if get failed

    - #### pause

          int pause()

      Pauses playback.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR`

    - #### resume

          int resume()

      Resumes playback.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_START_ERROR`

    - #### stop

          int stop()

      Stops playback.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_STOP_ERROR`

    - #### getCurrentStreamPosition

          long getCurrentStreamPosition()

      Gets the current position on the stream timeline. This position is not subject to timeline effects. It's adjust to use new interface, `AliyunIPlayerController.getCurrentStreamPosition()`, NOTE, the new interface's time unit is milliseconds
      Returns:
        The current position on the stream timeline. Unit: microseconds.

    - #### getCurrentPlayPosition

          long getCurrentPlayPosition()

      Gets the current position on the playback timeline. This position is subject to timeline effects. It's adjust to use new interface, `AliyunIPlayerController.getCurrentPlayPosition()`, NOTE， the new interface's time unit is milliseconds
      Returns:
        The current position on the playback timeline. Unit: microseconds.

    - #### getStreamDuration

          long getStreamDuration()

      Gets the duration of the video stream. It's adjust to use new interface, `AliyunIPlayerController.getStreamDuration()`, NOTE, the new interface's time unit is milliseconds
      Returns:
        The duration of the video stream. Unit: microseconds.

    - #### getDuration

          long getDuration()

      Gets the duration of the playback timeline. It's adjust to use new interface, `AliyunIPlayerController.getDuration()`, NOTE, the new interface's time unit is milliseconds
      Returns:
        The duration of the playback timeline. Unit: microseconds.

    - #### isPlaying

          boolean isPlaying()

    - #### isPaused

          boolean isPaused()

      Gets whether playback is paused.

    - #### getVideoWidth

          int getVideoWidth()

      Gets the video width.

    - #### getVideoHeight

          int getVideoHeight()

      Gets the video height.

    - #### getRotation

          int getRotation()

      Gets the angle of rotation.

    - #### isAudioSilence

          boolean isAudioSilence()

      Gets whether playback is muted.
      Returns:
        A value of true indicates muted. A value of false indicates unmuted.

    - #### setAudioSilence

          void setAudioSilence(boolean silence)

      Mutes or unmutes playback.
      Parameters:
        `silence` - A value of true indicates mute playback. A value of false indicates unmute playback.

    - #### setVolume

          int setVolume(int volume)

      Sets volume.
      Parameters:
        `volume` - Valid values: [0, 100]. 0 indicates muted. 100 indicates the maximum volume. Default is 50.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_CTL_INPUT_ERROR`

    - #### setDisplayMode

          int setDisplayMode(VideoDisplayMode mode)

      Sets the video display mode.
      Returns:
        `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.SVIDEO_EDITOR_PARSE_RESOURCE_FAILED`
      See Also:
        `VideoDisplayMode`

    - #### addRunningDisplayMode

          @Deprecated
          int addRunningDisplayMode(VideoDisplayMode mode,
                                                int streamId,
                                                long startTimeMills,
                                                long durationMills)

      Deprecated.
      Sets the video display mode during a time period. The mode set by this method overrides the mode set by `setDisplayMode(VideoDisplayMode)` during the specified time period.
      Parameters:
        `mode` -
        `streamId` - The id of the stream that this mode applies to.
        `startTimeMills` - The start time of the mode in the stream. Unit: milliseconds.
        `durationMills` - The duration of the mode. Unit: milliseconds.
      Returns:
        The effect id if the invocation is successful or an error code if the invocation fails.

    - #### removeRunningDisplayMode

          @Deprecated
          int removeRunningDisplayMode(int streamId,
                                                   int id)

      Deprecated.
      Removes the video display mode during a time period.
      Parameters:
        `streamId` - The id of the stream that this mode applies to.
        `id` - The id of the effect to be removed. Use `addRunningDisplayMode(VideoDisplayMode, int, long, long)` to get the effect id.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### setFillBackgroundColor

          int setFillBackgroundColor(int color)

      Sets the background color. This method only takes effect when `setDisplayMode(VideoDisplayMode)` is set to `VideoDisplayMode.FILL`.
      Parameters:
        `color` - The background color in ARGB format. An 8-bit integer type.
      Returns:
        `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE`
      See Also:
        `setDisplayMode(VideoDisplayMode)`, `VideoDisplayMode`

    - #### applyFilter

          @Deprecated
          int applyFilter(EffectBean effect)

      Deprecated. from v3.27.0, use `applyFilter(TrackEffectFilter)` instead.
      Applies a filter.
      Parameters:
        `effect` - The filter to be added. This parameter contains the path and id of the effect. null indicates remove all filters.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_INVALID_OPTION`

    - #### applyFilter

          int applyFilter(TrackEffectFilter effectFilter)

      Applies a filter.

      Added in v3.27.0

      Parameters:
        `effectFilter` - The filter to be added. This parameter contains the path and id of the effect. null indicates remove all filters.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_INVALID_OPTION`

    - #### removeFilter

          int removeFilter()

      Remove a filter. Added v3.27.0

    - #### applyMV

          @Deprecated
          int applyMV(EffectBean effect)

      Deprecated. from v3.27.0, use `applyMV(TrackEffectMV)` instead.
      Applies an MV effect.
      Parameters:
        `effect` - The MV effect to be added. This parameter contains the path and id of the effect. null indicates remove all MV effects. Call `EffectBean.getMvAudioId()` to get the id of the MV effect.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunErrorCode.ERROR_LICENSE_FAILED` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_INVALID_OPTION`

    - #### applyMV

          int applyMV(TrackEffectMV effect)

      Applies an MV effect.

      Added in v3.27.0

      Parameters:
        `effect` - The MV effect to be added. This parameter contains the path and id of the effect. null indicates remove all MV effects. Call `EffectBean.getMvAudioId()` to get the id of the MV effect.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunErrorCode.ERROR_LICENSE_FAILED` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_INVALID_OPTION`

    - #### applyWaterMark

          int applyWaterMark(java.lang.String imgPath,
                             float sizeX,
                             float sizeY,
                             float posX,
                             float posY)

      Applies a watermark. To apply a text watermark, use bitmap tools to convert texts into images.
      Parameters:
        `imgPath` - The path of the watermark image.
        `sizeX` -
        `sizeY` -
        `posX` -
        `posY` -
      Returns:
        `AliyunErrorCode.ERROR_EFFECT_USE_FAILED` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.SVIDEO_EDITOR_VIEW_TYPE_NOT_SUPPORTED`

    - #### applyWaterMark

          int applyWaterMark(TrackEffectWaterMark trackEffectWaterMark)

      Applies a watermark. To apply a text watermark, use bitmap tools to convert texts into images.

      Added in v3.27.0

      Parameters:
        `trackEffectWaterMark` - The water mark bean
      Returns:
        `AliyunErrorCode.ERROR_EFFECT_USE_FAILED` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.SVIDEO_EDITOR_VIEW_TYPE_NOT_SUPPORTED`
      See Also:
        `TrackEffectWaterMark`

    - #### addImage

          @Deprecated
          int addImage(EffectPicture picture)

      Deprecated. from v3.27.0，use the class `com.aliyun.svideosdk.editor.impl.AliyunPasterControllerImage` from `getPasterManager()` instead.
      Adds a static image.
      Parameters:
        `picture` - The bitmap image with arguments x, y, w, h indicating its relative position.
      Returns:
        `AliyunErrorCode.ERROR_EFFECT_USE_FAILED` `AliyunErrorCode.ERROR_TRES_PLAYER_UNPREPARED` `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunErrorCode.ERROR_PARAM_IMAGE_FILE_PATH_INVALID` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.SVIDEO_EDITOR_VIEW_TYPE_NOT_SUPPORTED`

    - #### removeImage

          @Deprecated
          void removeImage(EffectPicture picture)

      Deprecated. from v3.27.0，use the class `com.aliyun.svideosdk.editor.impl.AliyunPasterControllerImage` from `getPasterManager()` instead.
      Removes a static image.

    - #### addAnimationFilter

          @Deprecated
          int addAnimationFilter(EffectFilter filter)

      Deprecated. from v3.27.0，use `addAnimationFilter(TrackEffectFilter)`instead
      Adds an animated filter. Only one animated filter is allowed in a time period. If two filters overlap in time, the newer filter overrides the other in the overlapping period.
      Parameters:
        `filter` -
      Returns:
        `AliyunErrorCode.ERROR_EFFECT_USE_FAILED` `AliyunErrorCode.ERROR_INVALID_ARGUMENTS` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID`

    - #### addAnimationFilter

          int addAnimationFilter(TrackEffectFilter filter)

      Adds an animated filter. Only one animated filter is allowed in a time period. If two filters overlap in time, the newer filter overrides the other in the overlapping period.

      Added in v3.27.0

      Parameters:
        `filter` -
      Returns:
        `AliyunErrorCode.ERROR_EFFECT_USE_FAILED` `AliyunErrorCode.ERROR_INVALID_ARGUMENTS` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID`

    - #### updateAnimationFilter

          @Deprecated
          int updateAnimationFilter(EffectFilter filter)

      Deprecated. from v3.27.0，use `updateAnimationFilter(TrackEffectFilter)`instead
      update an animated filter params. Only one animated filter is allowed in a time period. If two filters overlap in time, the newer filter overrides the other in the overlapping period.
      Parameters:
        `filter` -
      Returns:
        `AliyunErrorCode.ERROR_EFFECT_USE_FAILED` `AliyunErrorCode.ERROR_INVALID_ARGUMENTS` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID`

    - #### updateAnimationFilter

          int updateAnimationFilter(TrackEffectFilter filter)

      update an animated filter params. Only one animated filter is allowed in a time period. If two filters overlap in time, the newer filter overrides the other in the overlapping period.

      Added in v3.27.0

      Parameters:
        `filter` -
      Returns:
        `AliyunErrorCode.ERROR_EFFECT_USE_FAILED` `AliyunErrorCode.ERROR_INVALID_ARGUMENTS` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID`

    - #### addFrameAnimation

          int addFrameAnimation(ActionBase action)

      Adds an animation to a stream or material.
      Parameters:
        `action` -
      Returns:
        The effect id if the invocation is successful or an error code if the invocation fails.
      See Also:
        `ActionBase`

    - #### removeFrameAnimation

          int removeFrameAnimation(ActionBase action)

      Removes an animation.
      Parameters:
        `action` -
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### removeAnimationFilter

          @Deprecated
          void removeAnimationFilter(EffectFilter filter)

      Deprecated. from v3.27.0废弃, use `removeAnimationFilter(TrackEffectFilter)` instead.
      Removes an animated filter.
      Parameters:
        `filter` -

    - #### removeAnimationFilter

          void removeAnimationFilter(TrackEffectFilter filter)

      Removes an animated filter.

      Added in v3.27.0

      Parameters:
        `filter` -

    - #### clearAllAnimationFilter

          void clearAllAnimationFilter()

      Removes all animated filters.

    - #### applyMusic

          @Deprecated
          int applyMusic(EffectBean effect)

      Deprecated. from v3.27.0，use `applyMusic(TrackAudioStream)` instead.
      Adds music to a time period.
      Parameters:
        `effect` - The music to be added. This parameter contains the path and id of the effect.
      Returns:
        The stream id if the invocation is successful or an error code if the invocation fails. `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`
      See Also:
        `EffectBean`

    - #### applyMusic

          int applyMusic(TrackAudioStream effectStream)

      Adds music to a time period.

      Added in v3.27.0， It's used to replace `applyMusic(EffectBean)`. You could use `EffectBean.toTrackAudioStream()` transform `EffectBean` to `TrackAudioStream`

      Parameters:
        `effectStream` - The music to be added. This parameter contains the path and id of the effect.
      Returns:
        The stream id if the invocation is successful or an error code if the invocation fails. `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`
      See Also:
        `TrackAudioStream`

    - #### applyDub

          @Deprecated
          int applyDub(EffectBean effect)

      Deprecated. from v3.27.0，use `applyDub(TrackAudioStream)` instead.
      Adds voiceover to a time period.
      Parameters:
        `effect` - The voiceover to be added. This parameter contains the path and id of the effect.
      Returns:
        The stream id if the invocation is successful or an error code if the invocation fails. `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`
      See Also:
        `EffectBean`

    - #### applyDub

          int applyDub(TrackAudioStream effectStream)

      Adds voiceover to a time period.

      Added in v3.27.0， It's used to replace `applyDub(EffectBean)`. You could use `EffectBean.toTrackAudioStream()` transform `EffectBean` to `TrackAudioStream`

      Parameters:
        `effectStream` - The voiceover to be added. This parameter contains the path and id of the effect.
      Returns:
        The stream id if the invocation is successful or an error code if the invocation fails. `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`
      See Also:
        `TrackAudioStream`

    - #### removeMusic

          @Deprecated
          int removeMusic(EffectBean effect)

      Deprecated. from v3.27.0，use `removeMusic(TrackAudioStream)`} instead.
      Removes music.
      Parameters:
        `effect` -
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`
      See Also:
        `EffectBean`

    - #### removeMusic

          int removeMusic(TrackAudioStream effectStream)

      Removes music.

      Added in v3.27.0， It's used to replace `removeMusic(EffectBean)`. You could use `EffectBean.toTrackAudioStream()` transform `EffectBean` to `TrackAudioStream`

      Parameters:
        `effectStream` -
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`
      See Also:
        `EffectBean`

    - #### removeDub

          @Deprecated
          int removeDub(EffectBean effect)

      Deprecated. from v3.27.0，use `removeDub(TrackAudioStream)` instead.
      Removes voiceover.
      Parameters:
        `effect` -
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`
      See Also:
        `TrackAudioStream`

    - #### removeDub

          int removeDub(TrackAudioStream effectStream)

      Removes voiceover.

      Added in v3.27.0， It's used to replace `removeDub(EffectBean)` . You could use `EffectBean.toTrackAudioStream()` transform `EffectBean` to `TrackAudioStream`

      Parameters:
        `effectStream` -
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_PAUSE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`
      See Also:
        `TrackAudioStream`

    - #### getFilterLastApplyId

          int getFilterLastApplyId()

      Gets the id of the last added filter.
      Returns:
        The id of the last added filter. `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE`

    - #### getMVLastApplyId

          int getMVLastApplyId()

      Gets the id of the last added MV effect.
      Returns:
        The id of the last added MV effect. `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE`

    - #### getMusicLastApplyId

          int getMusicLastApplyId()

      Gets the id of the last added music effect.
      Returns:
        The id of the last added music effect. `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE`

    - #### getPaintLastApply

          Paint getPaintLastApply()

      Gets the id of the last used paint.
      Returns:
        The id of the last used paint.

    - #### applyMusicMixWeight

          @Deprecated
          int applyMusicMixWeight(int id,
                                              int weight)

      Deprecated.
      Sets the mixing weight of an audio stream. The weight of this stream and that of the source stream must add up to 100. Example: Assume that an audio stream contains the following streams at a point in time: source stream (weight: 40), audio stream 1 (weight：30, id: 1), and audio stream 2 (weight：20, id：2). If you use this method to change the weight of audio stream 1 to 70, that is, applyMusicMixWeight(1, 70), the weights of these streams are changed as follows: source stream: 30, audio stream 1: 70, and audio stream 2: 20.
      Parameters:
        `id` - The id of the stream whose weight is to be changed. Use `EffectBean.getId()` to get the stream id.
        `weight` - Valid values: [0, 100].
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`

    - #### applyMusicWeight

          int applyMusicWeight(int id,
                               int weight)

      Sets the volume of an audio stream. The stream can be a material stream or source stream.
      Parameters:
        `id` - The id of the stream whose volume is to be changed. Use `EffectBean.getId()` to get the stream id. To change the volume of the source stream, use `getSourcePartManager()` to get the clip manager `com.aliyun.svideosdk.common.impl.AliyunClipConstructor`, use `com.aliyun.svideosdk.common.impl.AliyunClipConstructor#getAllClips()` to get the complete list of clips, and then use `AliyunClip.getId()` to get all clips in the source stream by id. Use these ids to change the volume of all clips.
        `weight` - Valid values: [0, 100]
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`

    - #### denoise

          @Deprecated
          int denoise(int id,
                                  boolean needDenoise)

      Deprecated.

      Denoises an audio stream.(Deprecated after v3.19.0)

      instead with #denoise(int,int)

      Parameters:
        `id` - The id of the audio stream.
        `needDenoise` - Whether to enable denoising.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### denoise

          int denoise(int id,
                      int denoiseWeight)

      Denoises an audio stream.

      Added in v3.19.0

      Parameters:
        `id` - The id of the audio stream.
        `denoiseWeight` - 0:close 100:max
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### createPasterManager

          @Deprecated
          AliyunPasterManager createPasterManager()

      Deprecated. from v3.27.0，use `getPasterManager()` instead.
      Creates a sticker manager.
      Returns:
        The sticker manager.
      See Also:
        `AliyunPasterManager`

    - #### getPasterManager

          AliyunPasterManager getPasterManager()

      Get the sticker manager

      Added in v3.27.0

      Returns:
        The sticker manager.
      See Also:
        `AliyunPasterManager`

    - #### createRollCaptionComposer

          AliyunRollCaptionComposer createRollCaptionComposer()

      Creates a roll caption composer.

      Added in v3.20.0

      Returns:
        The roll caption composer.
      See Also:
        `AliyunRollCaptionComposer`

    - #### getPasterRender

          @Deprecated
          AliyunPasterRender getPasterRender()

      Deprecated. from v3.27.0，use `getPasterManager()` instead.
      Gets the underlying renderer that is used to render stickers. Use this method if there is no UI requirements.
      Returns:
        贴图渲染对象
      See Also:
        `AliyunPasterRender`

    - #### obtainCanvasController

          AliyunICanvasController obtainCanvasController(Context context,
                                                         int w,
                                                         int h)

      Gets a doodle controller.
      Parameters:
        `context` - Recommended value: applicationContext.
        `w` - The width of the canvas.
        `h` - The height of the canvas.
      Returns:
        The doodle controller.
      See Also:
        `AliyunICanvasController`

    - #### onDestroy

          void onDestroy()

      The final lifecycle callback.

    - #### setTransition

          int setTransition(java.util.Map<java.lang.Integer,TransitionBase> transitions)

      Sets the transition duration. An index is required to indicate where the transition begins. If the index is set to 0, the transition begins at the beginning of the first video clip. If the index is greater than 0 and no greater than the total number of video clips, the transition overlaps two video clips. One is the video clip at the index position and the other is the video clip preceding the indexed video clip. The overlapping time is the duration of the transition. The duration must be no greater than half the duration of the shortest video clip. This ensures that the transition only overlaps two video clips.
      Parameters:
        `transitions` - The collection of transitions in a map.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunErrorCode.ERROR_PARAM_TRANSITION_DURATION_INVALID` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_EDITORLAYOUT_INVALID_SIZE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_RENDER_INIT_SPEAKER_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_VIDEO_ENCODER_ERROR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_START_ERROR`

    - #### setTransition

          int setTransition(int index,
                            TransitionBase transition)

      Sets the transition duration. An index is required to indicate where the transition begins. If the index is set to 0, the transition begins at the beginning of the first video clip. If the index is greater than 0 and no greater than the total number of video clips, the transition overlaps two video clips. One is the video clip at the index position and the other is the video clip preceding the indexed video clip. The overlapping time is the duration of the transition. The duration must be no greater than half the duration of the shortest video clip. This ensures that the transition only overlaps two video clips.
      Parameters:
        `index` - The index of a video clip.
        `transition` - `TransitionBase`
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunErrorCode.ERROR_PARAM_TRANSITION_DURATION_INVALID` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_EDITORLAYOUT_INVALID_SIZE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_RENDER_INIT_SPEAKER_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_VIDEO_ENCODER_ERROR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_START_ERROR`

    - #### updateTransition

          int updateTransition(int clipIndex,
                               TransitionBase transitionBase)

      update the custom transition. An index is required to indicate where the transition begins. If the index is set to 0, the transition begins at the beginning of the first video clip. If the index is greater than 0 and no greater than the total number of video clips, the transition overlaps two video clips. One is the video clip at the index position and the other is the video clip preceding the indexed video clip. The overlapping time is the duration of the transition. The duration must be no greater than half the duration of the shortest video clip. This ensures that the transition only overlaps two video clips.
      Parameters:
        `transitionBase` - the custom Transition .
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunErrorCode.ERROR_PARAM_TRANSITION_DURATION_INVALID` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_EDITORLAYOUT_INVALID_SIZE` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_RENDER_INIT_SPEAKER_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_VIDEO_ENCODER_ERROR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_START_ERROR`

    - #### setAnimationRestoredListener

          @Deprecated
          void setAnimationRestoredListener(OnAnimationFilterRestored li)

      Deprecated. from v3.27.0，use`setOnAnimationRestoredListener(OnAnimationFilterRestoredListener)` instead.
      Sets the callback when an animated filter is restored. The callback can be used to restore UI settings. To restore UI settings when editing in the draft mode, this callback must be set before `init(SurfaceView, Context)` is invoked bacause `init(SurfaceView, Context)` contains the logic to restore animated filters.
      Parameters:
        `li` -

    - #### setOnAnimationRestoredListener

          void setOnAnimationRestoredListener(OnAnimationFilterRestoredListener li)

      Sets the callback when an animated filter is restored. The callback can be used to restore UI settings. To restore UI settings when editing in the draft mode, this callback must be set before `init(SurfaceView, Context)` is invoked bacause `init(SurfaceView, Context)` contains the logic to restore animated filters.

      Added in v3.27.0

      Parameters:
        `li` -

    - #### version

          java.lang.String version()

      Gets the SDK version.
      Returns:
        The SDK version.

    - #### getAliyunLogInfo

          AliyunLogInfo getAliyunLogInfo()

      Gets log information.
      Returns:
        The log information.

    - #### setOutputPath

          void setOutputPath(java.lang.String path)

      Sets the output path.
      Parameters:
        `path` -

    - #### rate

          int rate(float rate,
                   long startTimeMills,
                   long durationMills,
                   boolean needOriginDuration)

      Sets the playback rate.
      Parameters:
        `rate` - The playback rate.
        `startTimeMills` - The start time when this rate takes effect. Unit: milliseconds.
        `durationMills` - The duration when this rate remains valid. Unit: milliseconds.
        `needOriginDuration` - Whether to retain the original video length.
      Returns:
        The effect ID if the invocation is successful or an error code if the invocation fails.

        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_TIME_EFFECT_NOT_SUPPORT` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_INVALID_OPTION` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`

    - #### repeat

          int repeat(int times,
                     long startTimeMills,
                     long durationMills,
                     boolean needOriginDuration)

      Repeats playback. Transcoding may be required if a video cannot be played repeatedly.
      Parameters:
        `times` - The number of repeats.
        `startTimeMills` - The start time of the repeats. Unit: milliseconds.
        `durationMills` - The duration of each repeat. Unit: milliseconds.
        `needOriginDuration` - Whether to retain the original video length.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_TIME_EFFECT_NOT_SUPPORT` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_INVALID_OPTION` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`

    - #### invert

          int invert()

      Starts playback backwards. Transcoding may be required if a video cannot be played backwards.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_TIME_EFFECT_NOT_SUPPORT` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`

    - #### deleteTimeEffect

          int deleteTimeEffect(int id)

      Deletes a timeline effect.
      Parameters:
        `id` - The id of the timeline effect to be deleted.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_PARAM` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_TIME_EFFECT_NOT_SUPPORT` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_INVALID_OPTION` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`

    - #### addTailWaterMark

          int addTailWaterMark(java.lang.String imagePath,
                               float sizeX,
                               float sizeY,
                               float posX,
                               float posY,
                               long durationUs)

      Adds a watermark to the end of the video.
      Parameters:
        `imagePath` - The path of the watermark image.
        `sizeX` - The width of the watermark image relative to the screen.
        `sizeY` - The height of the watermark image relative to the screen.
        `posX` - The x coordinate of the watermark image relative to the screen.
        `posY` - The y coordinate of the watermark image relative to the screen.
        `durationUs` - The display duration of the watermark image. Unit: microseconds.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_INVALID_OPTION`

    - #### addTailWaterMark

          int addTailWaterMark(TrackEffectWaterMark trackEffectWaterMark,
                               long duration,
                               java.util.concurrent.TimeUnit timeUnit)

      Adds a watermark to the end of the video.

      Added in v3.27.0

      Parameters:
        `trackEffectWaterMark` - The water mark bean
        `duration` - The display duration of the watermark image.
        `timeUnit` - Time Unit
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.SVIDEO_EDITOR_FILE_NOT_EXIST` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_INVALID_OPTION`
      See Also:
        `TrackEffectWaterMark`

    - #### resetEffect

          int resetEffect(EffectType effectType)

      Removes a type of effect.
      Parameters:
        `effectType` - The type of effect to be removed.
      Returns:
        `AliyunErrorCode.ERROR_TRES_ILLEGAL_EDITOR_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_NATIVE_NOT_INITED` `AliyunEditorErrorCode.SVIDEO_EDITOR_INVALID_STATE` `AliyunEditorErrorCode.SVIDEO_EDITOR_PREPARE_ERROR` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_RENDER_ERROR_SCENE_INVALID` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_FILE_STREAM_LIST_FAILED` `AliyunEditorErrorCode.ALIVC_FRAMEWORK_AUDIO_PROCESS_OPTION_LIST_FAILED`
      See Also:
        `EffectType`

    - #### getClipStartTime

          long getClipStartTime(int clipIndex)

      Parameters:
        `clipIndex` - The index of a clip.
      Returns:
        The start time of the clip.

    - #### getSourcePartManager

          AliyunISourcePartManager getSourcePartManager()

      Gets the clip manager. The clip manager can be used to modify, obtain, delete, and add clips.

    - #### getProjectInfo

          AliyunIProjectInfo getProjectInfo()

    - #### getTimeEffect

          TimeEffectType getTimeEffect()

      Gets the timeline effect.

    - #### applySourceChange

          int applySourceChange()

      Applies changes to video clips. This method may cause the video to be played again.

    - #### saveEffectToLocal

          int saveEffectToLocal()

      Saves all effects to a local path. To use AliyunICompose to compose video streams, all effects must be saved to a local path by calling this method.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### applyBlurBackground

          int applyBlurBackground(int streamId,
                                  long startTimeMills,
                                  long durationMills,
                                  float blurRadius)

      Adds a blurred background.
      Parameters:
        `streamId` - The id of the stream that the blurred background is added to.
        `startTimeMills` - The time when the blurred background is set to visible. Unit: milliseconds.
        `durationMills` - The display duration of the blurred background. Unit: milliseconds.
        `blurRadius` - The blur radius. Valid values: [0,29]
      Returns:
        The effect id if the invocation is successful or an error code if the invocation fails.

    - #### deleteBlurBackground

          int deleteBlurBackground(int streamId,
                                   int id)

      Deletes a blurred background.
      Parameters:
        `streamId` - The id of the stream that the blurred background is added to.
        `id` - The id of the effect to be deleted.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### compose

          int compose(AliyunVideoParam param,
                      java.lang.String outputPath,
                      AliyunIComposeCallBack callback)

      Starts the composition process.
      Parameters:
        `param` - The video parameters.
        `outputPath` - The output path.
        `callback` - The callback of the composition.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### cancelCompose

          int cancelCompose()

      Cancels the composition process.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### audioEffect

          @Deprecated
          int audioEffect(int id,
                                      AudioEffectType type,
                                      int weight)

      Deprecated. from v3.27.0，use `applyAudioEffect(int, AudioEffectType, int)` instead.
      Adds a sound effect. If there is no audio track in the target media file, the invocation has no effect.
      Parameters:
        `id` - The id of the audio stream that the sound effect is added to.
        `type` - The effect type `com.aliyun.svideosdk.editor.AudioEffectType`.
        `weight` - The weight of the effect. Valid values: [0,100].
      Returns:
        The id of the sound effect if the invocation is successful or an error code if the invocation fails.

    - #### applyAudioEffect

          int applyAudioEffect(int id,
                               AudioEffectType type,
                               int weight)

      Adds a sound effect. If there is no audio track in the target media file, the invocation has no effect.

      Added in v3.27.0, It will replace the interface `audioEffect(int, AudioEffectType, int)`

      Parameters:
        `id` - The id of the audio stream that the sound effect is added to.
        `type` - The effect type `com.aliyun.svideosdk.editor.AudioEffectType`.
        `weight` - The weight of the effect. Valid values: [0,100].
      Returns:
        The id of the sound effect if the invocation is successful or an error code if the invocation fails.

    - #### removeAudioEffect

          int removeAudioEffect(int id,
                                AudioEffectType type)

      Removes a sound effect.
      Parameters:
        `id` - The id of the sound effect to be removed.
        `type` - The effect type `com.aliyun.svideosdk.editor.AudioEffectType`.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### setAudioFadeIn

          int setAudioFadeIn(int id,
                             ShapeType shapeType,
                             long duration)

      added in v3.20

      set audio fade in

      Parameters:
        `id` - The id of the sound effect.
        `shapeType` - the type of fade `ShapeType`
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### setAudioFadeOut

          int setAudioFadeOut(int id,
                              ShapeType shapeType,
                              long duration)

      added in v3.20

      set audio fade out

      Parameters:
        `id` - The id of the sound effect.
        `shapeType` - the type of fade `ShapeType`
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### removeAudioFadeIn

          int removeAudioFadeIn(int id)

      added in v3.20

      remove audio fade in

      Parameters:
        `id` - The id of the sound effect.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### removeAudioFadeOut

          int removeAudioFadeOut(int id)

      added in v3.20

      remove audio fade out

      Parameters:
        `id` - The id of the sound effect.
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### setVideoAugmentation

          int setVideoAugmentation(int streamId,
                                   VideoAugmentationType type,
                                   float value)

      Added in v3.19.0

      setting the video eq parameter

      Parameters:
        `streamId` - target stream id
        `type` - video augmentation type `VideoAugmentationType`
        `value` -
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### resetVideoAugmentation

          int resetVideoAugmentation(int streamId,
                                     VideoAugmentationType type)

      Added in v3.19.0

      reset the video augmentation parameter

      Parameters:
        `streamId` - target stream id
        `type` - video augmentation type `VideoAugmentationType`
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.

    - #### getPipManager

          AliyunIPipManager getPipManager()

      Added in v3.25.0

      get picture in picture manager

      Returns:

    - #### getEditorProject

          AliyunEditorProject getEditorProject()

      Added in v3.23.0

      Gets the editor project

      Returns:
        editor project

    - #### updateCover

          void updateCover(Source source)

      Added in v3.25.0

      Update cover source. If null will auto capture first frame image as cover.

      Parameters:
        `source` - cover source

    - #### applyLutFilter

          int applyLutFilter(LUTEffectBean effect)

      Added in v3.27.0

      apply global lut filter.

      Parameters:
        `effect` - lut filter resource bean, null indicates remove lut filter.

    - #### updateCaption

          int updateCaption(AliyunCaption caption)

      Added in v3.27.0

      Update the caption.

      Parameters:
        `caption` - caption
      Returns:
        retCode( 0 : success , <0 : fail)

    - #### setHorizontalFlip

          int setHorizontalFlip(int streamId,
                                boolean flip)

      Added in v3.31.0

      setting the video horizontal flip or no

      Parameters:
        `streamId` - target stream id
        `flip` - video flip or no
      Returns:
        0 if the invocation is successful or an error code if the invocation fails.