From 62e74c604a1ecde1a7889d1bc1572ddc14e1577d Mon Sep 17 00:00:00 2001 From: otsmr Date: Sun, 11 May 2025 14:31:57 +0200 Subject: [PATCH] fix #163 --- lib/src/views/camera/camera_preview_view.dart | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/src/views/camera/camera_preview_view.dart b/lib/src/views/camera/camera_preview_view.dart index 58c822d..bf99a90 100644 --- a/lib/src/views/camera/camera_preview_view.dart +++ b/lib/src/views/camera/camera_preview_view.dart @@ -20,6 +20,8 @@ import 'package:twonly/src/utils/storage.dart'; import 'package:twonly/src/views/camera/share_image_editor_view.dart'; import 'package:twonly/src/views/home_view.dart'; +int maxVideoRecordingTime = 15; + class CameraPreviewView extends StatefulWidget { const CameraPreviewView({super.key, this.sendTo}); final Contact? sendTo; @@ -92,8 +94,11 @@ class _CameraPreviewViewState extends State { } } - Future selectCamera(int sCameraId, - {bool init = false, bool enableAudio = false}) async { + Future selectCamera( + int sCameraId, { + bool init = false, + bool enableAudio = false, + }) async { if (sCameraId >= gCameras.length) return; if (init) { for (; sCameraId < gCameras.length; sCameraId++) { @@ -104,6 +109,7 @@ class _CameraPreviewViewState extends State { } setState(() { isZoomAble = false; + scaleFactor = 1; }); controller = CameraController( gCameras[sCameraId], @@ -320,13 +326,14 @@ class _CameraPreviewViewState extends State { try { await controller?.startVideoRecording(); - videoRecordingTimer = Timer.periodic(Duration(milliseconds: 10), (timer) { + videoRecordingTimer = Timer.periodic(Duration(milliseconds: 15), (timer) { setState(() { currentTime = DateTime.now(); }); if (videoRecordingStarted != null && - currentTime.difference(videoRecordingStarted!).inSeconds >= 10) { + currentTime.difference(videoRecordingStarted!).inSeconds >= + maxVideoRecordingTime) { timer.cancel(); videoRecordingTimer = null; stopVideoRecording(); @@ -636,7 +643,7 @@ class _CameraPreviewViewState extends State { value: (currentTime.difference(videoRecordingStarted!)) .inMilliseconds / - (10 * 1000), + (maxVideoRecordingTime * 1000), strokeWidth: 4, valueColor: AlwaysStoppedAnimation(Colors.red),