🎬 短剧模块
2.0: 对应 2.0.0 纯短剧契约。pub.dev 当前仍提供 1.0.3;依赖尚未升级时请切换到 1.x 文档。
创建滑滑流
滑滑流应使用完整的竖向视口,不要放在未约束高度的滚动容器中。Android 宿主必须继承 FlutterFragmentActivity;iOS 只会在容器进入 window 且 bounds 非零后用实际尺寸创建原生控制器。
final controller = DramaSwipeFlowController();
DramaSwipeFlowNativeView(
controller: controller,
config: const DramaSwipeConfig(
channel: DramaSwipeChannel.recommendationAndTheater,
progressStyle: DramaProgressStyle.light,
detail: DramaDetailConfig(
unlockMode: DramaUnlockMode.sdkManaged,
freeEpisodes: 5,
unlockEpisodesPerAd: 2,
),
),
listener: DramaSwipeFlowListener(
onPageChanged: (event) {
debugPrint('当前短剧 ${event.dramaId},第 ${event.episode} 集');
},
),
)播放控制
await controller.pause();
await controller.resume();
await controller.seekTo(const Duration(seconds: 30));Android 专属的页面索引与更多菜单能力通过 controller.android 暴露。不存在的原生能力不会被映射成成功结果。
await controller.android?.setCurrentPage(0);
final int? episode = await controller.android?.getCurrentEpisode();
await controller.android?.setCurrentEpisode(3);
await controller.android?.openMoreDialog();切换 Tab、进入后台或被其他全屏视频覆盖时应暂停;重新可见后再恢复。dispose() 会释放当前滑滑流的原生页面、播放器与事件订阅。