diff --git a/packages/video_player/CHANGELOG.md b/packages/video_player/CHANGELOG.md index 2cc77e4904f9..362b6b02ea90 100644 --- a/packages/video_player/CHANGELOG.md +++ b/packages/video_player/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.10.0+6 + +* Android: Fix missing call to `event.put("event", "completed");` which makes it possible to detect when the video is over. + ## 0.10.0+5 * Fixed iOS build warnings about implicit retains. diff --git a/packages/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java b/packages/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java index de4f44cdb567..0fdaa2572c92 100644 --- a/packages/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java +++ b/packages/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java @@ -163,9 +163,15 @@ public void onPlayerStateChanged(final boolean playWhenReady, final int playback // iOS supports a list of buffered ranges, so here is a list with a single range. event.put("values", Collections.singletonList(range)); eventSink.success(event); - } else if (playbackState == Player.STATE_READY && !isInitialized) { - isInitialized = true; - sendInitialized(); + } else if (playbackState == Player.STATE_READY) { + if (!isInitialized) { + isInitialized = true; + sendInitialized(); + } + } else if (playbackState == Player.STATE_ENDED) { + Map event = new HashMap<>(); + event.put("event", "completed"); + eventSink.success(event); } } diff --git a/packages/video_player/lib/video_player.dart b/packages/video_player/lib/video_player.dart index 441057de32b6..ce4ac70cff43 100644 --- a/packages/video_player/lib/video_player.dart +++ b/packages/video_player/lib/video_player.dart @@ -242,7 +242,7 @@ class VideoPlayerController extends ValueNotifier { _applyPlayPause(); break; case 'completed': - value = value.copyWith(isPlaying: false); + value = value.copyWith(isPlaying: false, position: value.duration); _timer?.cancel(); break; case 'bufferingUpdate': diff --git a/packages/video_player/pubspec.yaml b/packages/video_player/pubspec.yaml index 8cae1f2811ff..01b6a041c115 100644 --- a/packages/video_player/pubspec.yaml +++ b/packages/video_player/pubspec.yaml @@ -2,7 +2,7 @@ name: video_player description: Flutter plugin for displaying inline video with other Flutter widgets on Android and iOS. author: Flutter Team -version: 0.10.0+5 +version: 0.10.0+6 homepage: https://github.com/flutter/plugins/tree/master/packages/video_player flutter: