com.aliyun.svideosdk.editor

## Interface AliyunIPipManager

-     public interface AliyunIPipManager

  v3.25.0 新增

  画中画（PIP）管理类，负责画中画的增删改查。

  您可以创建多个PIP实例与PIP轨道，默认创建PIP实例时，会自动创建一个PIP的轨道。

  也可以在指定轨道新增pip实例，或者在不同轨道间移动。

  图示：

  下图代表了一条主轨道 + 2条pip轨道 + 3 个pip实例

  主轨道 o--------------------------------------------o|

  pip轨道1 o-------------------------------------------|----o（被截断）

  pip轨道2 o--------------o o-------------o |

  注意：

  1，视频时长以主轨道为主，pip超过主轨道长度部分会被截断

  2，同一时间内的pip数量需要做限制，最好不要超过3个，您可以根据您的用户设备性能，在调用时由业务方自己做限制。

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `AliyunIPipController` | `createNewPip(java.lang.String path)` 创建一个PIP控制器实例,通过该方法会自动创建PIP轨道 如果需要指定轨道，请见`createPipInTrack(java.lang.String, com.aliyun.svideosdk.editor.AliyunIPipTrack)`
    `AliyunIPipController` | `createPipInTrack(java.lang.String path, AliyunIPipTrack track)` 创建一个画中画实例并插入对应的轨道
    `AliyunIPipController` | `findTopPipController(long timeInMillis, PointF pointF)` 查找当前时间，位置最顶部的画中画控制器
    `java.util.List<AliyunIPipController>` | `getAllPip()` 获取所有画中画
    `java.util.List<AliyunIPipTrack>` | `getPipTracks()` 获取所有画中画轨道
    `boolean` | `movePipIntoTrack(AliyunIPipController controller, AliyunIPipTrack track, long startTimeInMillis)` 移动画中画到某个轨道
    `boolean` | `removePip(AliyunIPipController controller)` 移除画中画

- - ### Method Detail

    - #### createNewPip

          AliyunIPipController createNewPip(java.lang.String path)

      创建一个PIP控制器实例,通过该方法会自动创建PIP轨道 如果需要指定轨道，请见`createPipInTrack(java.lang.String, com.aliyun.svideosdk.editor.AliyunIPipTrack)`
      Parameters:
        `path` - 流文件路径
      Returns:
        `AliyunIPipController`

    - #### createPipInTrack

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

      创建一个画中画实例并插入对应的轨道
      Parameters:
        `path` - 流文件路径
        `track` - 轨道信息 `AliyunIPipTrack`
      Returns:
        `AliyunIPipController`

    - #### removePip

          boolean removePip(AliyunIPipController controller)

      移除画中画
      Parameters:
        `controller` - 画中画控制器
      Returns:
        是否成功

    - #### movePipIntoTrack

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

      移动画中画到某个轨道
      Parameters:
        `controller` - 画中画控制器
        `track` - 画中画轨道
        `startTimeInMillis` - 时间轴上的开始时间，单位毫秒
      Returns:

    - #### getAllPip

          java.util.List<AliyunIPipController> getAllPip()

      获取所有画中画
      Returns:

    - #### findTopPipController

          AliyunIPipController findTopPipController(long timeInMillis,
                                                    PointF pointF)

           查找当前时间，位置最顶部的画中画控制器

      Parameters:
        `timeInMillis` - 时间，单位：毫秒
        `pointF` - 坐标点
      Returns:
        AliyunIPipController 画中画控制器，找不到返回null

    - #### getPipTracks

          java.util.List<AliyunIPipTrack> getPipTracks()

      获取所有画中画轨道
      Returns: