flutter_pip

仅适用于Android的画中画(Picture in Picture)简单插件。

Android 设置

您需要在AndroidManifest.xml中声明您的应用支持画中画模式,添加
以下行:

<activity
    ...
    android:supportsPictureInPicture="true"
    ...>
</activity>

进入画中画模式

int result = await FlutterPip.enterPictureInPictureMode();

如果返回值是0,则表示应用已成功进入画中画模式;如果返回1,则
很可能表明设备不支持画中画模式。

此函数支持一个可选的PipRatio类型参数,例如:

int result = await FlutterPip.enterPictureInPictureMode(
    PipRatio(
        width: ...
        height: ...
    )
);

pipRatio的默认值为width: 16height: 9。您还需要注意,
画中画模式仅支持0.418410到2.390000的宽高比值范围,
任何低于最小值或高于最大值的设置都会抛出PipRatioException异常。

检查应用是否处于画中画模式

bool result = await FlutterPip.isInPictureInPictureMode();

仅返回一个布尔值,指示应用是否处于画中画模式。

PipWidget

此小部件有两个回调:

PipWidget(
    onResume: (bool pipMode) {
        ...
    },
    onSuspended: () {
        ...
    }
    child: ...
}

onResume是一个异步回调,返回一个布尔值,指示画中画
模式已启用/禁用。如果您希望在应用处于画中画模式时
恢复小部件树UI,这将非常有用。

onSuspended只是一个简单的回调,您可以在应用被置于后台时使用它来执行任何您想要
的操作。

GitHub

查看 Github