diff --git a/packages/video_player/video_player_platform_interface/CHANGELOG.md b/packages/video_player/video_player_platform_interface/CHANGELOG.md index 4b44b050047a..49270c47fd45 100644 --- a/packages/video_player/video_player_platform_interface/CHANGELOG.md +++ b/packages/video_player/video_player_platform_interface/CHANGELOG.md @@ -1,5 +1,7 @@ -## NEXT +## 6.7.0 +* Adds `preventsDisplaySleepDuringVideoPlayback` to `VideoPlayerOptions` and + `setPreventsDisplaySleepDuringVideoPlayback` to `VideoPlayerPlatform`. * Updates minimum supported SDK version to Flutter 3.35/Dart 3.9. ## 6.6.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 1cec5f42c218..dce526f193cb 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 @@ -124,6 +124,16 @@ abstract class VideoPlayerPlatform extends PlatformInterface { ); } + /// Sets whether the screen is prevented from sleeping during video playback. + Future setPreventsDisplaySleepDuringVideoPlayback( + int playerId, + bool preventsDisplaySleepDuringVideoPlayback, + ) { + throw UnimplementedError( + 'setPreventsDisplaySleepDuringVideoPlayback() has not been implemented.', + ); + } + /// Sets additional options on web. Future setWebOptions(int playerId, VideoPlayerWebOptions options) { throw UnimplementedError('setWebOptions() has not been implemented.'); @@ -435,6 +445,7 @@ class VideoPlayerOptions { VideoPlayerOptions({ this.mixWithOthers = false, this.allowBackgroundPlayback = false, + this.preventsDisplaySleepDuringVideoPlayback = true, this.webOptions, }); @@ -449,6 +460,13 @@ class VideoPlayerOptions { /// currently no way to implement this feature in this platform). final bool mixWithOthers; + /// Whether the screen is prevented from sleeping during video playback. + /// + /// Defaults to `true`. + /// + /// This option is currently only supported on iOS and macOS. + final bool preventsDisplaySleepDuringVideoPlayback; + /// Additional web controls final VideoPlayerWebOptions? webOptions; } diff --git a/packages/video_player/video_player_platform_interface/pubspec.yaml b/packages/video_player/video_player_platform_interface/pubspec.yaml index b39acce19665..373ddb91f1fb 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.6.0 +version: 6.7.0 environment: sdk: ^3.9.0 diff --git a/packages/video_player/video_player_platform_interface/test/video_player_options_test.dart b/packages/video_player/video_player_platform_interface/test/video_player_options_test.dart index 6af3e57f6c0f..cedaac0570e7 100644 --- a/packages/video_player/video_player_platform_interface/test/video_player_options_test.dart +++ b/packages/video_player/video_player_platform_interface/test/video_player_options_test.dart @@ -14,4 +14,11 @@ void main() { final options = VideoPlayerOptions(); expect(options.mixWithOthers, false); }); + test( + 'VideoPlayerOptions preventsDisplaySleepDuringVideoPlayback defaults to true', + () { + final options = VideoPlayerOptions(); + expect(options.preventsDisplaySleepDuringVideoPlayback, true); + }, + ); }