diff --git a/packages/video_player/video_player_platform_interface/CHANGELOG.md b/packages/video_player/video_player_platform_interface/CHANGELOG.md index 5a0779f6abc3..bc285f9a1baa 100644 --- a/packages/video_player/video_player_platform_interface/CHANGELOG.md +++ b/packages/video_player/video_player_platform_interface/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 6.4.0 +* Adds HTML5 video poster support as a VideoPlayerWebOptions. * Updates minimum supported SDK version to Flutter 3.27/Dart 3.6. ## 6.3.0 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 13c9cf55aa7e..fe4b9210b7f2 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 @@ -429,6 +429,7 @@ class VideoPlayerWebOptions { this.controls = const VideoPlayerWebOptionsControls.disabled(), this.allowContextMenu = true, this.allowRemotePlayback = true, + this.poster, }); /// Additional settings for how control options are displayed @@ -439,6 +440,9 @@ class VideoPlayerWebOptions { /// Whether remote playback is allowed final bool allowRemotePlayback; + + /// The URL of the poster image to be displayed before the video starts + final Uri? poster; } /// [VideoPlayerWebOptions] can be used to set how control options are displayed diff --git a/packages/video_player/video_player_platform_interface/pubspec.yaml b/packages/video_player/video_player_platform_interface/pubspec.yaml index c02f16ff593f..b3ae08338ba4 100644 --- a/packages/video_player/video_player_platform_interface/pubspec.yaml +++ b/packages/video_player/video_player_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/packages/tree/main/packages/video_player/ issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22 # 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: 6.3.0 +version: 6.4.0 environment: sdk: ^3.6.0 diff --git a/packages/video_player/video_player_platform_interface/test/video_player_web_options_test.dart b/packages/video_player/video_player_platform_interface/test/video_player_web_options_test.dart index ae37fa399331..00b9e41cf283 100644 --- a/packages/video_player/video_player_platform_interface/test/video_player_web_options_test.dart +++ b/packages/video_player/video_player_platform_interface/test/video_player_web_options_test.dart @@ -29,4 +29,24 @@ void main() { expect(options.allowRemotePlayback, isTrue); }, ); + + group('VideoPlayerOptions poster', () { + test( + 'defaults to null', + () { + const VideoPlayerWebOptions options = VideoPlayerWebOptions(); + expect(options.poster, null); + }, + ); + + test( + 'with a value', + () { + final VideoPlayerWebOptions options = VideoPlayerWebOptions( + poster: Uri.parse('https://example.com/poster.jpg'), + ); + expect(options.poster, Uri.parse('https://example.com/poster.jpg')); + }, + ); + }); }