From 4ef8da33d767393854ff87012a1c3fb0794674b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanislav=20Kr=C3=A1l?= Date: Wed, 15 Apr 2020 11:27:58 +0200 Subject: [PATCH 1/2] Fixed an issue, where after restarting a subscription of the image stream, first few received images would be stale (typically images from the end of the first stream). This issue was caused by the absence of removing the image listener right after the cancellation of the image stream. --- .../src/main/java/io/flutter/plugins/camera/Camera.java | 5 +++++ .../io/flutter/plugins/camera/MethodCallHandlerImpl.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/camera/android/src/main/java/io/flutter/plugins/camera/Camera.java b/packages/camera/android/src/main/java/io/flutter/plugins/camera/Camera.java index 0fcda278d836..9dc7adf5bd94 100644 --- a/packages/camera/android/src/main/java/io/flutter/plugins/camera/Camera.java +++ b/packages/camera/android/src/main/java/io/flutter/plugins/camera/Camera.java @@ -475,6 +475,11 @@ private void setImageStreamImageAvailableListener(final EventChannel.EventSink i null); } + public void stopImageStream() throws CameraAccessException { + imageStreamReader.setOnImageAvailableListener(null, null); + startPreview(); + } + private void closeCaptureSession() { if (cameraCaptureSession != null) { cameraCaptureSession.close(); diff --git a/packages/camera/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java b/packages/camera/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java index cb58d19a9a02..4571e4a81443 100644 --- a/packages/camera/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java +++ b/packages/camera/android/src/main/java/io/flutter/plugins/camera/MethodCallHandlerImpl.java @@ -116,7 +116,7 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull final Result result) case "stopImageStream": { try { - camera.startPreview(); + camera.stopImageStream(); result.success(null); } catch (Exception e) { handleException(e, result); From b9d98fd2e9aebd0e88862e7f3a64e3bcbcb96d06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanislav=20Kr=C3=A1l?= Date: Wed, 15 Apr 2020 13:17:10 +0200 Subject: [PATCH 2/2] Changed version and updated changelog --- packages/camera/CHANGELOG.md | 4 ++++ packages/camera/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md index f63c79bd42cb..5e2abfa73f06 100644 --- a/packages/camera/CHANGELOG.md +++ b/packages/camera/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.7+6 + +* Fixed an issue, where after restarting a subscription of the image stream, first few received images would be stale (typically images from the end of the first stream). + ## 0.5.7+5 * Replace deprecated `getFlutterEngine` call on Android. diff --git a/packages/camera/pubspec.yaml b/packages/camera/pubspec.yaml index 96ab8bb94f5f..bcf71f1bb01a 100644 --- a/packages/camera/pubspec.yaml +++ b/packages/camera/pubspec.yaml @@ -2,7 +2,7 @@ name: camera description: A Flutter plugin for getting information about and controlling the camera on Android and iOS. Supports previewing the camera feed, capturing images, capturing video, and streaming image buffers to dart. -version: 0.5.7+5 +version: 0.5.7+6 homepage: https://github.com/flutter/plugins/tree/master/packages/camera