Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit 0417103

Browse files
committed
Fix iOS rotation issue
1 parent 9d00dd2 commit 0417103

File tree

4 files changed

+14
-12
lines changed

4 files changed

+14
-12
lines changed

packages/camera/camera/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.8.0-nullsafety.3
2+
3+
* Solved a rotation issue on iOS which caused the default preview to be displayed as landscape right instead of portrait.
4+
15
## 0.8.0-nullsafety.2
26

37
* Solved delay when using the zoom feature on iOS.

packages/camera/camera/ios/Classes/CameraPlugin.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ - (instancetype)initWithCameraName:(NSString *)cameraName
392392
if ([_captureDevice position] == AVCaptureDevicePositionFront) {
393393
connection.videoMirrored = YES;
394394
}
395-
connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight;
395+
connection.videoOrientation = AVCaptureVideoOrientationPortrait;
396396
[_captureSession addInputWithNoConnections:_captureVideoInput];
397397
[_captureSession addOutputWithNoConnections:_captureVideoOutput];
398398
[_captureSession addConnection:connection];

packages/camera/camera/lib/src/camera_preview.dart

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import 'package:camera/camera.dart';
66
import 'package:camera_platform_interface/camera_platform_interface.dart';
7-
import 'package:flutter/foundation.dart';
87
import 'package:flutter/material.dart';
98
import 'package:flutter/services.dart';
109

@@ -41,26 +40,25 @@ class CameraPreview extends StatelessWidget {
4140
: Container();
4241
}
4342

44-
DeviceOrientation _getApplicableOrientation() {
45-
return controller.value.isRecordingVideo
46-
? controller.value.recordingOrientation!
47-
: (controller.value.lockedCaptureOrientation ??
48-
controller.value.deviceOrientation);
49-
}
50-
5143
bool _isLandscape() {
5244
return [DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight]
5345
.contains(_getApplicableOrientation());
5446
}
5547

5648
int _getQuarterTurns() {
57-
int platformOffset = defaultTargetPlatform == TargetPlatform.iOS ? 1 : 0;
5849
Map<DeviceOrientation, int> turns = {
5950
DeviceOrientation.portraitUp: 0,
6051
DeviceOrientation.landscapeLeft: 1,
6152
DeviceOrientation.portraitDown: 2,
6253
DeviceOrientation.landscapeRight: 3,
6354
};
64-
return turns[_getApplicableOrientation()]! + platformOffset;
55+
return turns[_getApplicableOrientation()]!;
56+
}
57+
58+
DeviceOrientation _getApplicableOrientation() {
59+
return controller.value.isRecordingVideo
60+
? controller.value.recordingOrientation!
61+
: (controller.value.lockedCaptureOrientation ??
62+
controller.value.deviceOrientation);
6563
}
6664
}

packages/camera/camera/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: camera
22
description: A Flutter plugin for getting information about and controlling the
33
camera on Android and iOS. Supports previewing the camera feed, capturing images, capturing video,
44
and streaming image buffers to dart.
5-
version: 0.8.0-nullsafety.2
5+
version: 0.8.0-nullsafety.3
66
homepage: https://github.com/flutter/plugins/tree/master/packages/camera/camera
77

88
dependencies:

0 commit comments

Comments
 (0)