diff --git a/packages/video_player/video_player_web/CHANGELOG.md b/packages/video_player/video_player_web/CHANGELOG.md index 9c500e951122..d18504913d89 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 3a849f45e0c1..251da3779e7f 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 @@ -119,6 +119,13 @@ class VideoPlayerPlugin extends VideoPlayerPlatform { return _videoPlayers[textureId].setVolume(volume); } + @override + Future setPlaybackSpeed(int textureId, double speed) async { + assert(speed > 0); + + return _videoPlayers[textureId].setPlaybackSpeed(speed); + } + @override Future seekTo(int textureId, Duration position) async { return _videoPlayers[textureId].seekTo(position); @@ -232,6 +239,12 @@ class _VideoPlayer { 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 891430d7483b..98191bf6ba85 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 @@ dependencies: 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 @@ dev_dependencies: 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 ef6dc028c529..453079bfcd40 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 @@ void main() { 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)),