[video_player_web] Implement playback speed (#3081)
diff --git a/packages/video_player/video_player_web/CHANGELOG.md b/packages/video_player/video_player_web/CHANGELOG.md
index 9c500e9..d185049 100644
--- a/packages/video_player/video_player_web/CHANGELOG.md
+++ b/packages/video_player/video_player_web/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.1.4
+
+* Added option to set the video playback speed on the video controller.
+
## 0.1.3+2
* Allow users to set the 'muted' attribute on video elements by setting their volume to 0.
diff --git a/packages/video_player/video_player_web/lib/video_player_web.dart b/packages/video_player/video_player_web/lib/video_player_web.dart
index 3a849f4..251da37 100644
--- a/packages/video_player/video_player_web/lib/video_player_web.dart
+++ b/packages/video_player/video_player_web/lib/video_player_web.dart
@@ -120,6 +120,13 @@
}
@override
+ Future<void> setPlaybackSpeed(int textureId, double speed) async {
+ assert(speed > 0);
+
+ return _videoPlayers[textureId].setPlaybackSpeed(speed);
+ }
+
+ @override
Future<void> seekTo(int textureId, Duration position) async {
return _videoPlayers[textureId].seekTo(position);
}
@@ -232,6 +239,12 @@
videoElement.volume = value;
}
+ void setPlaybackSpeed(double speed) {
+ assert(speed > 0);
+
+ videoElement.playbackRate = speed;
+ }
+
void seekTo(Duration position) {
videoElement.currentTime = position.inMilliseconds.toDouble() / 1000;
}
diff --git a/packages/video_player/video_player_web/pubspec.yaml b/packages/video_player/video_player_web/pubspec.yaml
index 891430d..98191bf 100644
--- a/packages/video_player/video_player_web/pubspec.yaml
+++ b/packages/video_player/video_player_web/pubspec.yaml
@@ -1,10 +1,10 @@
name: video_player_web
-description: Web platform implementation of video_player
+description: Web platform implementation of video_player.
homepage: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player_web
# 0.1.y+z is compatible with 1.0.0, if you land a breaking change bump
# the version to 2.0.0.
# See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0
-version: 0.1.3+2
+version: 0.1.4
flutter:
plugin:
@@ -19,7 +19,7 @@
flutter_web_plugins:
sdk: flutter
meta: ^1.1.7
- video_player_platform_interface: ^2.0.0
+ video_player_platform_interface: ^2.2.0
dev_dependencies:
flutter_test:
@@ -29,5 +29,5 @@
pedantic: ^1.8.0
environment:
- sdk: ">=2.1.0 <3.0.0"
+ sdk: ">=2.8.0 <3.0.0"
flutter: ">=1.12.8 <2.0.0"
diff --git a/packages/video_player/video_player_web/test/video_player_web_test.dart b/packages/video_player/video_player_web/test/video_player_web_test.dart
index ef6dc02..453079b 100644
--- a/packages/video_player/video_player_web/test/video_player_web_test.dart
+++ b/packages/video_player/video_player_web/test/video_player_web_test.dart
@@ -109,6 +109,13 @@
expect(VideoPlayerPlatform.instance.setVolume(textureId, 0.8), completes);
});
+ test('can set playback speed', () {
+ expect(
+ VideoPlayerPlatform.instance.setPlaybackSpeed(textureId, 2.0),
+ completes,
+ );
+ });
+
test('can seek to position', () {
expect(
VideoPlayerPlatform.instance.seekTo(textureId, Duration(seconds: 1)),