VideoPlayerController class Null safety

Controls a platform video player, and provides updates when the state is changing.

Instances must be initialized with initialize.

The video is displayed in a Flutter app by creating a VideoPlayer widget.

To reclaim the resources used by the player call dispose.

After dispose all further calls are ignored.



VideoPlayerController.asset(String dataSource, {String? package, Future<ClosedCaptionFile>? closedCaptionFile, VideoPlayerOptions? videoPlayerOptions})
Constructs a VideoPlayerController playing a video from an asset.
VideoPlayerController.contentUri(Uri contentUri, {Future<ClosedCaptionFile>? closedCaptionFile, VideoPlayerOptions? videoPlayerOptions})
Constructs a VideoPlayerController playing a video from a contentUri.
VideoPlayerController.file(File file, {Future<ClosedCaptionFile>? closedCaptionFile, VideoPlayerOptions? videoPlayerOptions})
Constructs a VideoPlayerController playing a video from a file. dataSource, {VideoFormat? formatHint, Future<ClosedCaptionFile>? closedCaptionFile, VideoPlayerOptions? videoPlayerOptions, Map<String, String> httpHeaders = const <String, String>{}})
Constructs a VideoPlayerController playing a video from obtained from the network.


closedCaptionFile Future<ClosedCaptionFile>?
Returns the file containing closed captions for the video, if any.
dataSource String
The URI to the video file. This will be in different formats depending on the DataSourceType of the original video.
dataSourceType DataSourceType
Describes the type of data source this VideoPlayerController is constructed with.
formatHint VideoFormat?
Android only. Will override the platform's generic file format detection with whatever is set here.
hashCode int
The hash code for this object.
hasListeners bool
Whether any listeners are currently registered.
httpHeaders Map<String, String>
HTTP headers used for the request to the dataSource. Only for Always empty for other video types.
package String?
Only set for asset videos. The package that the asset was loaded from.
position Future<Duration?>
The position in the current video.
runtimeType Type
A representation of the runtime type of the object.
textureId int
This is just exposed for testing. It shouldn't be used by anyone depending on the plugin.
value VideoPlayerValue
The current value stored in this notifier.
read / writeinherited
videoPlayerOptions VideoPlayerOptions?
Provide additional configuration options (optional). Like setting the audio mode to mix


addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
dispose() Future<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).
initialize() Future<void>
Attempts to open the given dataSource and load metadata about the video.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
notifyListeners() → void
Call all the registered listeners.
pause() Future<void>
Pauses the video.
play() Future<void>
Starts playing the video.
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
seekTo(Duration position) Future<void>
Sets the video's current timestamp to be at moment. The next time the video is played it will resume from the given moment.
setCaptionOffset(Duration offset) → void
Sets the caption offset.
setClosedCaptionFile(Future<ClosedCaptionFile>? closedCaptionFile) Future<void>
Sets a closed caption file.
setLooping(bool looping) Future<void>
Sets whether or not the video should loop after playing once. See also VideoPlayerValue.isLooping.
setPlaybackSpeed(double speed) Future<void>
Sets the playback speed of this.
setVolume(double volume) Future<void>
Sets the audio volume of this.
toString() String
A string representation of this object.


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


kUninitializedTextureId → const int
The id of a texture that hasn't been initialized.