BackgroundVideoDisplay class

A widget that displays either processed (background-replaced) video frames or falls back to standard RTCVideoView when no background is active.

This widget is designed to be used as a videoBuilder in CardVideoDisplay or as a replacement for the video surface in VideoCard when the local participant has a virtual background enabled.

Usage:

// In a VideoCard or CardVideoDisplay, use this as a video overlay
BackgroundVideoDisplay(
  videoStream: localStreamVideo,
  doMirror: true,
  objectFit: RTCVideoViewObjectFit.RTCVideoViewObjectFitCover,
)

How it works:

  1. Checks BackgroundProcessorService.hasBackground to see if processing is active
  2. If processing active: Shows CustomPaint with processed frames
  3. If not processing: Shows standard RTCVideoView with raw camera
  4. Automatically updates when frames are ready via callback
Inheritance

Constructors

BackgroundVideoDisplay({Key? key, required MediaStream? videoStream, bool doMirror = true, RTCVideoViewObjectFit objectFit = RTCVideoViewObjectFit.RTCVideoViewObjectFitCover, BackgroundProcessorService? processorService})
const

Properties

doMirror bool
Whether to mirror the video (for local camera preview)
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
objectFit → RTCVideoViewObjectFit
Object fit mode
final
processorService BackgroundProcessorService?
The processor service (uses singleton if not provided)
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
videoStream MediaStream?
The source stream to display (used when no background is active)
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<BackgroundVideoDisplay>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

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