[video_player] Expose `VideoScrubber` so it can be used to create custom video timelines (#6680)
* Expose `VideoScrubber` so it can be used to make custom video timelines
* Added documentation
* Updated version
* Cleanup
* Formatting
* Update CHANGELOG.md
diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md
index c916946..fdf7348 100644
--- a/packages/video_player/video_player/CHANGELOG.md
+++ b/packages/video_player/video_player/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.5.0
+
+* Exposes `VideoScrubber` so it can be used to make custom video progress indicators
+
## 2.4.10
* Adds compatibilty with version 6.0 of the platform interface.
diff --git a/packages/video_player/video_player/lib/video_player.dart b/packages/video_player/video_player/lib/video_player.dart
index 76f865a..f27c342 100644
--- a/packages/video_player/video_player/lib/video_player.dart
+++ b/packages/video_player/video_player/lib/video_player.dart
@@ -835,20 +835,29 @@
final Color backgroundColor;
}
-class _VideoScrubber extends StatefulWidget {
- const _VideoScrubber({
+/// A scrubber to control [VideoPlayerController]s
+class VideoScrubber extends StatefulWidget {
+ /// Create a [VideoScrubber] handler with the given [child].
+ ///
+ /// [controller] is the [VideoPlayerController] that will be controlled by
+ /// this scrubber.
+ const VideoScrubber({
+ Key? key,
required this.child,
required this.controller,
- });
+ }) : super(key: key);
+ /// The widget that will be displayed inside the gesture detector.
final Widget child;
+
+ /// The [VideoPlayerController] that will be controlled by this scrubber.
final VideoPlayerController controller;
@override
- _VideoScrubberState createState() => _VideoScrubberState();
+ State<VideoScrubber> createState() => _VideoScrubberState();
}
-class _VideoScrubberState extends State<_VideoScrubber> {
+class _VideoScrubberState extends State<VideoScrubber> {
bool _controllerWasPlaying = false;
VideoPlayerController get controller => widget.controller;
@@ -1013,7 +1022,7 @@
child: progressIndicator,
);
if (widget.allowScrubbing) {
- return _VideoScrubber(
+ return VideoScrubber(
controller: controller,
child: paddedProgressIndicator,
);
diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml
index a049f0b..0f37c03 100644
--- a/packages/video_player/video_player/pubspec.yaml
+++ b/packages/video_player/video_player/pubspec.yaml
@@ -3,7 +3,7 @@
widgets on Android, iOS, and web.
repository: https://github.com/flutter/plugins/tree/main/packages/video_player/video_player
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
-version: 2.4.10
+version: 2.5.0
environment:
sdk: ">=2.14.0 <3.0.0"