저는 AVFoundation을 사용하여 비디오 카메라 UI를 만들고 있습니다. 포함하는 viewcontroller는 LandscapeRight 방향으로 만 표시됩니다. 미리 층을 통해 출력 방향을 변경하는 경우, 올바르게 표시AVCaptureVideoPreviewLayer의 방향 변경 관련 문제
self.previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:self.captureSession];
self.previewLayer.orientation = AVCaptureVideoOrientationLandscapeRight;
[self.displayContainer.layer addSublayer:self.previewLayer];
는 그러나, 나는 AVCaptureVideoPreviewLayer의 방향 속성이 AVCaptureConnection.videoOrientation 찬성되지 않습니다 실현. 대신 사용하는 경우 :
self.previewLayer.connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight;
미리 층 방향에 대해 서로 다른 옵션을 시도하는 경우에도, 모든 방향을 변경 나타나지 않습니다. 이것을 권장 방법으로하기 위해 제가 놓친 다른 단계가 있습니까?
편집 : 아래
뷰 컨트롤러에 존재하는 자동 회전 방법은 다음과 같습니다
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeRight;
}
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeRight;
}
해결 방법 :이 해결
모두 @ Spectravideo328의 대답에 조언을 모두 적용하고, displayContainer 하위보기가 아니라 ViewControllers보기 레이어에 미리보기 레이어를 추가합니다.
아래의 업데이트 된 답변을 참조하십시오. – Spectravideo328