FlexibleVideoOptions class

Configuration payload for FlexibleVideo.

Powers the MediaSFU main video grid with responsive card sizing and optional screen-share annotation overlays:

  • customWidth / customHeight set requested card dimensions. The widget clamps them to available constraints so cards remain visible even when initial values are large or the viewport is narrow.
  • annotateScreenStream + localStreamScreen enable overlaying annotation canvases atop screen shares. The card width adjusts to the stream's native resolution when annotations are active.
  • Rich builder surface (containerBuilder, gridBuilder, rowBuilder, cellBuilder, screenboardBuilder) lets you inject custom rendering layers while preserving the built-in grid logic.
  • Computed cardSize, cardLeft, and canvasLeft are passed to each builder context so downstream widgets can align or position elements relative to the final card geometry.

Override this component via MediasfuUICustomOverrides.flexibleVideo when you need branded tiling, watermarks, or alternative card layouts.

Constructors

FlexibleVideoOptions({required double customWidth, required double customHeight, required int rows, required int columns, required List<Widget> componentsToRender, bool showAspect = true, Color backgroundColor = Colors.transparent, Widget? screenboard, bool annotateScreenStream = false, MediaStream? localStreamScreen, EdgeInsetsGeometry? containerPadding, EdgeInsetsGeometry? containerMargin, Decoration? containerDecoration, AlignmentGeometry? containerAlignment, Clip containerClipBehavior = Clip.none, BoxConstraints? containerConstraints, FlexibleVideoContainerBuilder? containerBuilder, FlexibleVideoGridBuilder? gridBuilder, double? rowSpacing = 2, EdgeInsetsGeometry? rowPadding, EdgeInsetsGeometry? rowMargin, Decoration? rowDecoration, Clip rowClipBehavior = Clip.none, MainAxisAlignment? rowMainAxisAlignment, CrossAxisAlignment? rowCrossAxisAlignment, MainAxisSize rowMainAxisSize = MainAxisSize.min, FlexibleVideoRowBuilder? rowBuilder, double? columnSpacing = 2, EdgeInsetsGeometry? cellPadding, EdgeInsetsGeometry? cellMargin, Decoration? cellDecoration, Clip cellClipBehavior = Clip.none, AlignmentGeometry? cellAlignment, FlexibleVideoCellBuilder? cellBuilder, EdgeInsetsGeometry? screenboardPadding, EdgeInsetsGeometry? screenboardMargin, Decoration? screenboardDecoration, Clip screenboardClipBehavior = Clip.none, AlignmentGeometry? screenboardAlignment, FlexibleVideoScreenboardBuilder? screenboardBuilder})
const

Properties

annotateScreenStream bool
final
backgroundColor Color
final
cellAlignment AlignmentGeometry?
final
cellBuilder FlexibleVideoCellBuilder?
final
cellClipBehavior Clip
final
cellDecoration Decoration?
final
cellMargin EdgeInsetsGeometry?
final
cellPadding EdgeInsetsGeometry?
final
columns int
final
columnSpacing double?
final
componentsToRender List<Widget>
final
containerAlignment AlignmentGeometry?
final
containerBuilder FlexibleVideoContainerBuilder?
final
containerClipBehavior Clip
final
containerConstraints BoxConstraints?
final
containerDecoration Decoration?
final
containerMargin EdgeInsetsGeometry?
final
containerPadding EdgeInsetsGeometry?
final
customHeight double
final
customWidth double
final
gridBuilder FlexibleVideoGridBuilder?
final
hashCode int
The hash code for this object.
no setterinherited
localStreamScreen → MediaStream?
final
rowBuilder FlexibleVideoRowBuilder?
final
rowClipBehavior Clip
final
rowCrossAxisAlignment CrossAxisAlignment?
final
rowDecoration Decoration?
final
rowMainAxisAlignment MainAxisAlignment?
final
rowMainAxisSize MainAxisSize
final
rowMargin EdgeInsetsGeometry?
final
rowPadding EdgeInsetsGeometry?
final
rows int
final
rowSpacing double?
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
screenboard Widget?
final
screenboardAlignment AlignmentGeometry?
final
screenboardBuilder FlexibleVideoScreenboardBuilder?
final
screenboardClipBehavior Clip
final
screenboardDecoration Decoration?
final
screenboardMargin EdgeInsetsGeometry?
final
screenboardPadding EdgeInsetsGeometry?
final
showAspect bool
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited