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
-
- Object
- ChangeNotifier
- ChewieController
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, 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
-
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, 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