From 5d904b2e9ad26d0a8e16908b01f60124da29a3b7 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Thu, 18 Feb 2021 10:15:14 +0100 Subject: [PATCH 1/3] [video_player] Ignore setting mixWithOthers in web This option can't be implemented in the web platform, so it is better to just ignore it as there is no other alternative when running in web. The documentation is updated to note this option will be silently ignored in web. Fixes https://github.com/flutter/flutter/issues/75493. Signed-off-by: Leandro Lucarella --- packages/video_player/video_player/CHANGELOG.md | 4 ++++ packages/video_player/video_player/README.md | 2 ++ packages/video_player/video_player/pubspec.yaml | 4 ++-- .../lib/video_player_platform_interface.dart | 3 +++ packages/video_player/video_player_web/CHANGELOG.md | 4 ++++ packages/video_player/video_player_web/README.md | 4 ++++ .../video_player/video_player_web/lib/video_player_web.dart | 4 ++++ packages/video_player/video_player_web/pubspec.yaml | 2 +- .../video_player_web/test/video_player_web_test.dart | 5 +++++ 9 files changed, 29 insertions(+), 3 deletions(-) diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md index 0cabfc48226d..f79a05f0e036 100644 --- a/packages/video_player/video_player/CHANGELOG.md +++ b/packages/video_player/video_player/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.0-nullsafety.11 + +* Setting the `mixWithOthers` `VideoPlayerOptions` in web now is silently ignored instead of throwing an exception. + ## 2.0.0-nullsafety.10 * Updated to video_player_platform_interface 4.0. diff --git a/packages/video_player/video_player/README.md b/packages/video_player/video_player/README.md index e64ce152f85b..ea84ac1b97ec 100644 --- a/packages/video_player/video_player/README.md +++ b/packages/video_player/video_player/README.md @@ -48,6 +48,8 @@ This plugin compiles for the web platform since version `0.10.5`, in recent enou Different web browsers may have different video-playback capabilities (supported formats, autoplay...). Check [package:video_player_web](https://pub.dev/packages/video_player_web) for more web-specific information. +The `VideoPlayerOptions.mixWithOthers` option can't be implemented in web, at least at the moment. If you use this option in web it will be silently ignored. + ## Supported Formats - On iOS, the backing player is [AVPlayer](https://developer.apple.com/documentation/avfoundation/avplayer). diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml index e21315025005..0d3fbc1eae31 100644 --- a/packages/video_player/video_player/pubspec.yaml +++ b/packages/video_player/video_player/pubspec.yaml @@ -1,7 +1,7 @@ name: video_player description: Flutter plugin for displaying inline video with other Flutter widgets on Android, iOS, and web. -version: 2.0.0-nullsafety.10 +version: 2.0.0-nullsafety.11 homepage: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player flutter: @@ -25,7 +25,7 @@ dependencies: # the constraints on the interface pins it. # TODO(amirh): Revisit this (either update this part in the design or the pub tool). # https://github.com/flutter/flutter/issues/46264 - video_player_web: ^2.0.0-nullsafety.1 + video_player_web: ^2.0.0-nullsafety.4 flutter: sdk: flutter diff --git a/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart b/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart index f2bc00205acc..77b34f46bc10 100644 --- a/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart +++ b/packages/video_player/video_player_platform_interface/lib/video_player_platform_interface.dart @@ -346,6 +346,9 @@ class DurationRange { class VideoPlayerOptions { /// Set this to true to mix the video players audio with other audio sources. /// The default value is false + /// + /// Note: This option will be silently ignored in the web platform (there is + /// currently no way to implement this feature in this platform). final bool mixWithOthers; /// set additional optional player settings diff --git a/packages/video_player/video_player_web/CHANGELOG.md b/packages/video_player/video_player_web/CHANGELOG.md index 7b3fc7871628..4c58311508a2 100644 --- a/packages/video_player/video_player_web/CHANGELOG.md +++ b/packages/video_player/video_player_web/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.0-nullsafety.4 + +* Calling `setMixWithOthers()` now is silently ignored instead of throwing an exception. + ## 2.0.0-nullsafety.3 * Updated to video_player_platform_interface 4.0. diff --git a/packages/video_player/video_player_web/README.md b/packages/video_player/video_player_web/README.md index 4f222be914eb..d44f738aeb66 100644 --- a/packages/video_player/video_player_web/README.md +++ b/packages/video_player/video_player_web/README.md @@ -28,6 +28,10 @@ The Web platform does **not** suppport `dart:io`, so attempts to create a `Video Playing videos without prior interaction with the site might be prohibited by the browser and lead to runtime errors. See also: https://goo.gl/xX8pDD. +## Mixing audio with other audio sources + +The `VideoPlayerOptions.mixWithOthers` option can't be implemented in web, at least at the moment. If you use this option it will be silently ignored. + ## Supported Formats **Different web browsers support different sets of video codecs.** 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 9132a08437da..18f9e5e58cd6 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 @@ -144,6 +144,10 @@ class VideoPlayerPlugin extends VideoPlayerPlatform { Widget buildView(int textureId) { return HtmlElementView(viewType: 'videoPlayer-$textureId'); } + + /// Sets the audio mode to mix with other sources (ignored) + @override + Future setMixWithOthers(bool mixWithOthers) => Future.value(); } class _VideoPlayer { diff --git a/packages/video_player/video_player_web/pubspec.yaml b/packages/video_player/video_player_web/pubspec.yaml index df5f4564bf4a..d9628535e353 100644 --- a/packages/video_player/video_player_web/pubspec.yaml +++ b/packages/video_player/video_player_web/pubspec.yaml @@ -1,7 +1,7 @@ name: video_player_web description: Web platform implementation of video_player. homepage: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player_web -version: 2.0.0-nullsafety.3 +version: 2.0.0-nullsafety.4 flutter: plugin: 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 94b788872b03..604bebf4e17a 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 @@ -136,5 +136,10 @@ void main() { expect(VideoPlayerPlatform.instance.buildView(textureId), isInstanceOf()); }); + + test('ignores setting mixWithOthers', () { + expect(VideoPlayerPlatform.instance.setMixWithOthers(true), completes); + expect(VideoPlayerPlatform.instance.setMixWithOthers(false), completes); + }); }); } From f7d4532732c87115f885dd3fa895c71d323a56bc Mon Sep 17 00:00:00 2001 From: David Iglesias Date: Thu, 18 Feb 2021 14:03:41 -0800 Subject: [PATCH 2/3] Update packages/video_player/video_player/pubspec.yaml Downgrade video_player_web dependency to see if the local CI freaks out less --- 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 0d3fbc1eae31..39289d159195 100644 --- a/packages/video_player/video_player/pubspec.yaml +++ b/packages/video_player/video_player/pubspec.yaml @@ -25,7 +25,7 @@ dependencies: # the constraints on the interface pins it. # TODO(amirh): Revisit this (either update this part in the design or the pub tool). # https://github.com/flutter/flutter/issues/46264 - video_player_web: ^2.0.0-nullsafety.4 + video_player_web: ^2.0.0-nullsafety.1 flutter: sdk: flutter From e1f6f45b1329449ac10aac1a76cb53b98704e7d7 Mon Sep 17 00:00:00 2001 From: David Iglesias Teixeira Date: Thu, 18 Feb 2021 18:15:49 -0800 Subject: [PATCH 3/3] Bump version and CHANGELOG in interface package. --- .../video_player/video_player_platform_interface/CHANGELOG.md | 4 ++++ .../video_player/video_player_platform_interface/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/video_player/video_player_platform_interface/CHANGELOG.md b/packages/video_player/video_player_platform_interface/CHANGELOG.md index 34df33664c68..7b223f4d958c 100644 --- a/packages/video_player/video_player_platform_interface/CHANGELOG.md +++ b/packages/video_player/video_player_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.0.0-nullsafety.1 + +* Add note about the `mixWithOthers` option being ignored on the web. + ## 4.0.0-nullsafety.0 * Update to latest Pigeon. diff --git a/packages/video_player/video_player_platform_interface/pubspec.yaml b/packages/video_player/video_player_platform_interface/pubspec.yaml index e493eebd800e..ed16ea1033fa 100644 --- a/packages/video_player/video_player_platform_interface/pubspec.yaml +++ b/packages/video_player/video_player_platform_interface/pubspec.yaml @@ -3,7 +3,7 @@ description: A common platform interface for the video_player plugin. homepage: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player_platform_interface # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 4.0.0-nullsafety.0 +version: 4.0.0-nullsafety.1 dependencies: flutter: