ChewieController class

The ChewieController is used to configure and drive the Chewie Player Widgets. It provides methods to control playback, such as pause and play, as well as methods that control the visual appearance of the player, such as enterFullScreen or exitFullScreen.

In addition, you can listen to the ChewieController for presentational changes, such as entering and exiting full screen mode. To listen for changes to the playback, such as a change to the seek position of the player, please use the standard information provided by the VideoPlayerController.

Inheritance

Constructors

ChewieController({required VideoPlayerController videoPlayerController, OptionsTranslation? optionsTranslation, double? aspectRatio, bool autoInitialize = false, bool autoPlay = false, bool draggableProgressBar = true, Duration? startAt, bool looping = false, bool fullScreenByDefault = false, ChewieProgressColors? cupertinoProgressColors, ChewieProgressColors? materialProgressColors, Widget? placeholder, Widget? overlay, bool showControlsOnInitialize = true, bool showOptions = true, Future<void> optionsBuilder(BuildContext context, List<OptionItem> chewieOptions)?, List<OptionItem> additionalOptions(BuildContext context)?, bool showControls = true, TransformationController? transformationController, bool zoomAndPan = false, double maxScale = 2.5, Subtitles? subtitle, Widget subtitleBuilder(BuildContext context, dynamic subtitle)?, Widget? customControls, Widget errorBuilder(BuildContext context, String errorMessage)?, bool allowedScreenSleep = true, bool isLive = false, bool allowFullScreen = true, bool allowMuting = true, bool allowPlaybackSpeedChanging = true, bool useRootNavigator = true, List<double> playbackSpeeds = const [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2], List<SystemUiOverlay>? systemOverlaysOnEnterFullScreen, List<DeviceOrientation>? deviceOrientationsOnEnterFullScreen, List<SystemUiOverlay> systemOverlaysAfterFullScreen = SystemUiOverlay.values, List<DeviceOrientation> deviceOrientationsAfterFullScreen = DeviceOrientation.values, ChewieRoutePageBuilder? routePageBuilder, Duration? progressIndicatorDelay, Duration hideControlsTimer = defaultHideControlsTimer, EdgeInsets controlsSafeAreaMinimum = EdgeInsets.zero})

Properties

additionalOptions → (List<OptionItem> Function(BuildContext context)?)
Add your own additional options on top of chewie options
final
allowedScreenSleep bool
Defines if the player will sleep in fullscreen or not
final
allowFullScreen bool
Defines if the fullscreen control should be shown
final
allowMuting bool
Defines if the mute control should be shown
final
allowPlaybackSpeedChanging bool
Defines if the playback speed control should be shown
final
aspectRatio double?
The Aspect Ratio of the Video. Important to get the correct size of the video!
final
autoInitialize bool
Initialize the Video on Startup. This will prep the video for playback.
final
autoPlay bool
Play the video as soon as it's displayed
final
controlsSafeAreaMinimum EdgeInsets
Adds additional padding to the controls' SafeArea as desired. Defaults to EdgeInsets.zero.
final
cupertinoProgressColors ChewieProgressColors?
The colors to use for controls on iOS. By default, the iOS player uses colors sampled from the original iOS 11 designs.
final
customControls Widget?
Defines customised controls. Check MaterialControls or CupertinoControls for reference.
final
deviceOrientationsAfterFullScreen List<DeviceOrientation>
Defines the set of allowed device orientations after exiting fullscreen
final
deviceOrientationsOnEnterFullScreen List<DeviceOrientation>?
Defines the set of allowed device orientations on entering fullscreen
final
draggableProgressBar bool
Non-Draggable Progress Bar
final
errorBuilder → (Widget Function(BuildContext context, String errorMessage)?)
When the video playback runs into an error, you can build a custom error message.
final
fullScreenByDefault bool
Defines if the player will start in fullscreen when play is pressed
final
hashCode int
The hash code for this object.
no setterinherited
hasListeners bool
Whether any listeners are currently registered.
no setterinherited
hideControlsTimer Duration
Defines the Duration before the video controls are hidden. By default, this is set to three seconds.
final
isFullScreen bool
no setter
isLive bool
Defines if the controls should be shown for live stream video
final
isPlaying bool
no setter
looping bool
Whether or not the video should loop
final
materialProgressColors ChewieProgressColors?
The colors to use for the Material Progress Bar. By default, the Material player uses the colors from your Theme.
final
maxScale double
Max scale when zooming
final
optionsBuilder → (Future<void> Function(BuildContext context, List<OptionItem> chewieOptions)?)
Build your own options with default chewieOptions shiped through the builder method. Just add your own options to the Widget you'll build. If you want to hide the chewieOptions, just leave them out from your Widget.
final
optionsTranslation OptionsTranslation?
Pass your translations for the options like:
final
overlay Widget?
A widget which is placed between the video and the controls
final
placeholder Widget?
The placeholder is displayed underneath the Video before it is initialized or played.
final
playbackSpeeds List<double>
Defines the set of allowed playback speeds user can change
final
progressIndicatorDelay Duration?
Defines a delay in milliseconds between entering buffering state and displaying the loading spinner. Set null (default) to disable it.
final
routePageBuilder ChewieRoutePageBuilder?
Defines a custom RoutePageBuilder for the fullscreen
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
showControls bool
Whether or not to show the controls at all
final
showControlsOnInitialize bool
Wether or not to show the controls when initializing the widget.
final
showOptions bool
If false, the options button in MaterialUI and MaterialDesktopUI won't be shown.
final
startAt Duration?
Start video at a certain position
final
subtitle Subtitles?
Add a List of Subtitles here in Subtitles.subtitle
getter/setter pair
subtitleBuilder ↔ (Widget Function(BuildContext context, dynamic subtitle)?)
Define here your own Widget on how your n'th subtitle will look like
getter/setter pair
systemOverlaysAfterFullScreen List<SystemUiOverlay>
Defines the system overlays visible after exiting fullscreen
final
systemOverlaysOnEnterFullScreen List<SystemUiOverlay>?
Defines the system overlays visible on entering fullscreen
final
transformationController TransformationController?
Controller to pass into the InteractiveViewer component
final
useRootNavigator bool
Defines if push/pop navigations use the rootNavigator
final
videoPlayerController → VideoPlayerController
The controller for the video you want to play
final
zoomAndPan bool
Whether or not to allow zooming and panning
final

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
copyWith({VideoPlayerController? videoPlayerController, OptionsTranslation? optionsTranslation, double? aspectRatio, bool? autoInitialize, bool? autoPlay, bool? draggableProgressBar, Duration? startAt, bool? looping, bool? fullScreenByDefault, ChewieProgressColors? cupertinoProgressColors, ChewieProgressColors? materialProgressColors, Widget? placeholder, Widget? overlay, bool? showControlsOnInitialize, bool? showOptions, Future<void> optionsBuilder(BuildContext, List<OptionItem>)?, List<OptionItem> additionalOptions(BuildContext)?, bool? showControls, TransformationController? transformationController, bool? zoomAndPan, double? maxScale, Subtitles? subtitle, Widget subtitleBuilder(BuildContext, dynamic)?, Widget? customControls, Widget errorBuilder(BuildContext, String)?, bool? allowedScreenSleep, bool? isLive, bool? allowFullScreen, bool? allowMuting, bool? allowPlaybackSpeedChanging, bool? useRootNavigator, Duration? hideControlsTimer, EdgeInsets? controlsSafeAreaMinimum, List<double>? playbackSpeeds, List<SystemUiOverlay>? systemOverlaysOnEnterFullScreen, List<DeviceOrientation>? deviceOrientationsOnEnterFullScreen, List<SystemUiOverlay>? systemOverlaysAfterFullScreen, List<DeviceOrientation>? deviceOrientationsAfterFullScreen, Duration? progressIndicatorDelay, Widget routePageBuilder(BuildContext, Animation<double>, Animation<double>, ChewieControllerProvider)?}) ChewieController
dispose() → void
Discards any resources used by the object. After this is called, the object is not in a usable state and should be discarded (calls to addListener will throw after the object is disposed).
inherited
enterFullScreen() → void
exitFullScreen() → void
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
pause() Future<void>
play() Future<void>
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
seekTo(Duration moment) Future<void>
setLooping(bool looping) Future<void>
setSubtitle(List<Subtitle> newSubtitle) → void
setVolume(double volume) Future<void>
toggleFullScreen() → void
togglePause() → void
toString() String
A string representation of this object.
inherited

Operators

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

Static Methods

of(BuildContext context) ChewieController

Constants

defaultHideControlsTimer → const Duration