com.aliyun.svideosdk.editor

## Interface AliyunIPipManager

-     public interface AliyunIPipManager

  sdk version >= v3.25.0

  picture in picture (PIP) manager.

  you can create any PIP instance with PIP track by default.

  you can also add PIP instance on a given track or move between tracks

  example：

  The graph below represents a main track + 2 PIP Track + 3 PIP instance.

  main track o--------------------------------------------o|

  PIP track1 o-------------------------------------------|----o（be truncated）

  PIP track2 o--------------o o-------------o |

  Attentions：

  1. The length of the video is dominated by the main track, and the PIP exceeding the length of the main track will be truncated.

  2. he number of PIPs at a time needs to be limited, preferably not more than 3, and you can limit this by the business side at the time of invocation, depending on the performance of your user device.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `AliyunIPipController` | `createNewPip(java.lang.String path)` create a PIP instance, this method will create a new PIP track.
    `AliyunIPipController` | `createPipInTrack(java.lang.String path, AliyunIPipTrack track)` create a PIP instance on a given track.
    `AliyunIPipController` | `findTopPipController(long timeInMillis, PointF pointF)` find top pip controller on given time and point
    `java.util.List<AliyunIPipController>` | `getAllPip()` Get all PIP instance controllers
    `java.util.List<AliyunIPipTrack>` | `getPipTracks()` Get all PIP tracks
    `boolean` | `movePipIntoTrack(AliyunIPipController controller, AliyunIPipTrack track, long startTimeInMillis)` Move PIP to some track
    `boolean` | `removePip(AliyunIPipController controller)` Remove a PIP instance

- - ### Method Detail

    - #### createNewPip

          AliyunIPipController createNewPip(java.lang.String path)

      create a PIP instance, this method will create a new PIP track. see also `createPipInTrack(java.lang.String, com.aliyun.svideosdk.editor.AliyunIPipTrack)`
      Parameters:
        `path` - file path
      Returns:
        `AliyunIPipController`

    - #### createPipInTrack

          AliyunIPipController createPipInTrack(java.lang.String path,
                                                AliyunIPipTrack track)

      create a PIP instance on a given track.
      Parameters:
        `path` - file path
        `track` - a exits PIP track
      Returns:
        `AliyunIPipController`

    - #### removePip

          boolean removePip(AliyunIPipController controller)

      Remove a PIP instance
      Parameters:
        `controller` - a exist PIP controller `AliyunIPipController`
      Returns:

    - #### movePipIntoTrack

          boolean movePipIntoTrack(AliyunIPipController controller,
                                   AliyunIPipTrack track,
                                   long startTimeInMillis)

      Move PIP to some track
      Parameters:
        `controller` -
        `track` -
        `startTimeInMillis` - start time on track
      Returns:

    - #### getAllPip

          java.util.List<AliyunIPipController> getAllPip()

      Get all PIP instance controllers
      Returns:

    - #### findTopPipController

          AliyunIPipController findTopPipController(long timeInMillis,
                                                    PointF pointF)

           find top pip controller on given time and point

      Parameters:
        `timeInMillis` -
        `pointF` -
      Returns:
        AliyunIPipController return null for pip not found

    - #### getPipTracks

          java.util.List<AliyunIPipTrack> getPipTracks()

      Get all PIP tracks
      Returns: