画中画(Picture-in-Picture, PiP)是一种多窗口模式,允许用户在屏幕一角的小窗口中观看视频,同时在主屏幕上继续与其他应用或内容进行交互。
说明
当前 Flutter 播放器 SDK 的画中画仅支持 iOS 平台,且需满足相关前提条件并在 Xcode 项目中配置 Audio, AirPlay, and Picture in Picture。
// 判断当前设备是否支持开启画中画 bool ret = await player.isPictureInPictureSupported(); // 开启画中画,播放开始后调用 player.startPictureInPicture(); // 停止画中画 player.stopPictureInPicture();
自动画中画是指应用从前台运行状态切换到后台运行状态后(例如用户返回桌面或切换到其他应用),系统自动将该视频播放窗口缩小为悬浮的画中画窗口,而无需用户手动开启。您需要监听播放器的 playbackStateDidChange 事件,在第一次播放开始后调用 enableAutoBackgroundPictureInPicture 方法。此后用户如果在播放中切换到后台运行状态,SDK 将自动开启画中画功能。
player.playbackStateDidChange = (TTVideoEnginePlaybackState playbackState) { switch (playbackState) { case TTVideoEnginePlaybackState.stopped: break; case TTVideoEnginePlaybackState.paused: break; case TTVideoEnginePlaybackState.error: break; case TTVideoEnginePlaybackState.playing: if (GlobalConfiguration.enablePIPBackgroundAuto && Platform.isIOS) { // 播放开始后调用 player.enableAutoBackgroundPictureInPicture(true); } break; default: break; } };