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: 16和height: 9。您还需要注意,
画中画模式仅支持0.418410到2.390000的宽高比值范围,
任何低于最小值或高于最大值的设置都会抛出PipRatioException异常。
检查应用是否处于画中画模式
bool result = await FlutterPip.isInPictureInPictureMode();
仅返回一个布尔值,指示应用是否处于画中画模式。
PipWidget
此小部件有两个回调:
PipWidget(
onResume: (bool pipMode) {
...
},
onSuspended: () {
...
}
child: ...
}
onResume是一个异步回调,返回一个布尔值,指示画中画
模式已启用/禁用。如果您希望在应用处于画中画模式时
恢复小部件树UI,这将非常有用。
onSuspended只是一个简单的回调,您可以在应用被置于后台时使用它来执行任何您想要
的操作。