enterFullScreen method
Future<void>
enterFullScreen(
- AliPlayerWidgetController controller,
- int currentPosition, {
- Map<
SlotType, Function?> ? slotBuilders,
播放器横竖屏切换
controller 播放器控制器
currentPosition 当前播放位置
slotBuilders 插槽构建器映射,用于自定义插槽内容
hiddenSlotElements 隐藏插槽元素配置,用于在全屏模式下隐藏特定插槽内的UI元素
Key为插槽类型SlotType,Value为要隐藏的元素标识符集合
Implementation
Future<void> enterFullScreen(
AliPlayerWidgetController controller,
int currentPosition, {
Map<SlotType, Function?>? slotBuilders,
Map<SlotType, Set<String>>? hiddenSlotElements,
}) async {
final data = controller._widgetData;
if (data == null) return;
data.startTime = currentPosition;
// 进入全屏播放器
AliPlayerWidgetData result = await Navigator.of(_context).push(
PageRouteBuilder(
transitionDuration: const Duration(milliseconds: 100), // 动画持续时间
pageBuilder: (context, animation, secondaryAnimation) {
return AliPlayerFullScreenWidget(
controller,
data,
slotBuilders: slotBuilders ?? const {},
hiddenSlotElements: hiddenSlotElements ?? const {},
);
},
transitionsBuilder: (context, animation, secondaryAnimation, child) {
// 淡入淡出动画
return FadeTransition(
opacity: animation,
child: child,
);
},
),
);
final int fullScreenPosition = result.startTime;
await _aliPlayer.seekTo(fullScreenPosition, result.seekMode);
controller.play();
}