VideoPlayerController class

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.

Inheritance

Constructors

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

Properties

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

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
dispose() → Future<void>
Discards any resources used by the object.
override
getAudioTracks() → Future<List<VideoAudioTrack>>
Gets the available audio tracks for the video.
getVideoTracks() → Future<List<VideoTrack>>
Gets the available video tracks for the video.
initialize() → Future<void>
Attempts to open the given dataSource and load metadata about the video.
isAudioTrackSupportAvailable() → bool
Returns whether audio track selection is supported on this platform.
isVideoTrackSupportAvailable() → bool
Whether video track selection is supported on this platform.
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>
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.
override
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.
selectAudioTrack(String trackId) → Future<void>
Selects which audio track is chosen for playback from its trackId
selectVideoTrack(VideoTrack? track) → Future<void>
Selects which video track is chosen for playback.
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.
setPreventsDisplaySleepDuringVideoPlayback(bool preventsDisplaySleepDuringVideoPlayback) → Future<void>
Sets whether the screen is prevented from sleeping during video playback.
setVolume(double volume) → Future<void>
Sets the audio volume of this.
toString() → String
A string representation of this object.
inherited

Operators

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

Constants

kUninitializedPlayerId → const int
The id of a player that hasn't been initialized.