buildOverlaysSlot static method
List<Widget>
buildOverlaysSlot({
- required AliPlayerWidget widget,
- required Widget defaultBuilder(
- BuildContext context
- required BuildContext context,
- required AliPlayerWidgetController controller,
构建浮层插槽
Build overlays slot widgets
controller 播放器控制器,传递给 slotBuilder 以支持在全屏模式下正确控制播放器
支持两种 slotBuilder 签名以保持向后兼容:
Widget Function(BuildContext)- 旧版本(已废弃)Widget Function(BuildContext, AliPlayerWidgetController)- 新版本(推荐)
Implementation
static List<Widget> buildOverlaysSlot({
required AliPlayerWidget widget,
required Widget Function(BuildContext context) defaultBuilder,
required BuildContext context,
required AliPlayerWidgetController controller,
}) {
const slotType = SlotType.overlays;
final slotBuilders = widget.slotBuilders;
// 如果插槽构建器为null,则不显示该插槽
if (slotBuilders.containsKey(slotType) && slotBuilders[slotType] == null) {
return const <Widget>[];
}
// 如果插槽构建器不为null,则使用自定义构建器
final slotBuilder = slotBuilders[slotType];
if (slotBuilder != null) {
return [_callSlotBuilder(slotBuilder, context, controller)];
}
// 回退到默认的overlays参数(向后兼容)
return widget.overlays;
}