From effb6ee22efba978e13e030efd145d90322d0635 Mon Sep 17 00:00:00 2001 From: creativecreatorormaybenot Date: Fri, 25 Sep 2020 22:11:12 +0000 Subject: [PATCH 1/5] Web changes --- packages/video_player/video_player_web/CHANGELOG.md | 4 ++++ .../video_player_web/lib/video_player_web.dart | 13 +++++++++++++ packages/video_player/video_player_web/pubspec.yaml | 8 ++++---- .../test/video_player_web_test.dart | 8 +++++++- 4 files changed, 28 insertions(+), 5 deletions(-) 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..115d3b35ef1b 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 @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @TestOn('browser') - import 'dart:async'; import 'package:flutter/services.dart'; @@ -109,6 +108,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)), From c574152e3547faba5aec82d08c23f83db09ed124 Mon Sep 17 00:00:00 2001 From: creativecreatorormaybenot Date: Fri, 25 Sep 2020 22:17:22 +0000 Subject: [PATCH 2/5] Add new line back --- .../video_player_web/test/video_player_web_test.dart | 1 + 1 file changed, 1 insertion(+) 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 115d3b35ef1b..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 @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @TestOn('browser') + import 'dart:async'; import 'package:flutter/services.dart'; From 19fe2ee73c0e813e9be9f00019f79269707d18b6 Mon Sep 17 00:00:00 2001 From: creativecreatorormaybenot Date: Fri, 25 Sep 2020 22:40:22 +0000 Subject: [PATCH 3/5] Lock interface in video player --- packages/video_player/video_player/CHANGELOG.md | 4 ++++ packages/video_player/video_player/pubspec.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md index 4e2df4ebaef3..86bcb4c225f9 100644 --- a/packages/video_player/video_player/CHANGELOG.md +++ b/packages/video_player/video_player/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.10.12+5 + +* Locked `video_player_platform_interface` to version `2.1.1` for test to succeed. + ## 0.10.12+4 * Keep handling deprecated Android v1 classes for backward compatibility. diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml index 6eac285006a9..2d7e95923e71 100644 --- a/packages/video_player/video_player/pubspec.yaml +++ b/packages/video_player/video_player/pubspec.yaml @@ -4,7 +4,7 @@ description: Flutter plugin for displaying inline video with other Flutter # 0.10.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.10.12+4 +version: 0.10.12+5 homepage: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player flutter: @@ -20,7 +20,7 @@ flutter: dependencies: meta: ^1.0.5 - video_player_platform_interface: ^2.1.0 + video_player_platform_interface: 2.1.1 # The design on https://flutter.dev/go/federated-plugins was to leave # this constraint as "any". We cannot do it right now as it fails pub publish # validation, so we set a ^ constraint. From 0e4aa0860480423855e4454834090129206da4cb Mon Sep 17 00:00:00 2001 From: creativecreatorormaybenot Date: Fri, 25 Sep 2020 23:26:51 +0000 Subject: [PATCH 4/5] Adjust --- packages/video_player/video_player/CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md index 86bcb4c225f9..935de9b7813b 100644 --- a/packages/video_player/video_player/CHANGELOG.md +++ b/packages/video_player/video_player/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.10.12+5 -* Locked `video_player_platform_interface` to version `2.1.1` for test to succeed. +* Depend on `video_player_platform_interface` version that contains the new `TestHostVideoPlayerApi` + in order for tests to pass using the latest dependency. ## 0.10.12+4 From 605929bc9dd15bd5ce63bb709ef24be6b118491b Mon Sep 17 00:00:00 2001 From: creativecreatorormaybenot Date: Fri, 25 Sep 2020 23:27:31 +0000 Subject: [PATCH 5/5] Adjust --- packages/video_player/video_player/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml index 2d7e95923e71..bd6d45122503 100644 --- a/packages/video_player/video_player/pubspec.yaml +++ b/packages/video_player/video_player/pubspec.yaml @@ -20,7 +20,7 @@ flutter: dependencies: meta: ^1.0.5 - video_player_platform_interface: 2.1.1 + video_player_platform_interface: ^2.2.0 # The design on https://flutter.dev/go/federated-plugins was to leave # this constraint as "any". We cannot do it right now as it fails pub publish # validation, so we set a ^ constraint.