Skip to content

Commit 3d8093f

Browse files
committed
🚸 Trigger shooting preparation only when start recording on iOS
1 parent 301aee7 commit 3d8093f

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

lib/src/widget/camera_picker.dart

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,8 @@ class CameraPickerState extends State<CameraPicker>
369369
/// 通过常量全局 Key 获取当前选择器的主题
370370
ThemeData get theme => _theme;
371371

372+
bool _isPreparedForIOSRecording = false;
373+
372374
@override
373375
void initState() {
374376
super.initState();
@@ -783,8 +785,12 @@ class CameraPickerState extends State<CameraPicker>
783785

784786
/// Set record file path and start recording.
785787
/// 设置拍摄文件路径并开始录制视频
786-
void startRecordingVideo() {
788+
Future<void> startRecordingVideo() async {
787789
if (!controller.value.isRecordingVideo) {
790+
if (!_isPreparedForIOSRecording) {
791+
await controller.prepareForVideoRecording();
792+
_isPreparedForIOSRecording = true;
793+
}
788794
controller.startVideoRecording().then((dynamic _) {
789795
safeSetState(() {});
790796
if (isRecordingRestricted) {
@@ -986,9 +992,6 @@ class CameraPickerState extends State<CameraPicker>
986992
const Size innerSize = Size.square(82);
987993
return Listener(
988994
behavior: HitTestBehavior.opaque,
989-
onPointerDown: shouldPrepareForVideoRecording
990-
? (_) => controller.prepareForVideoRecording()
991-
: null,
992995
onPointerUp: enableRecording ? recordDetectionCancel : null,
993996
onPointerMove: enablePullToZoomInRecord
994997
? (PointerMoveEvent e) => onShootingButtonMove(e, constraints)

0 commit comments

Comments
 (0)