Я реализовал код ниже, чтобы изменить ориентацию AVCaptureVideoSession
основанную на UIInterfaceOrientation
:Quick 180 вращение результатов устройств IOS в камере просмотра вверх-вниз
- (AVCaptureVideoOrientation)interfaceOrientationToVideoOrientation:(UIInterfaceOrientation)orientation {
switch (orientation) {
case UIInterfaceOrientationPortrait:
return AVCaptureVideoOrientationPortrait;
case UIInterfaceOrientationPortraitUpsideDown:
return AVCaptureVideoOrientationPortraitUpsideDown;
case UIInterfaceOrientationLandscapeLeft:
return AVCaptureVideoOrientationLandscapeLeft;
case UIInterfaceOrientationLandscapeRight:
return AVCaptureVideoOrientationLandscapeRight;
default:
break;
}
NSLog(@"Warning - Didn't recognise interface orientation (%ld)",(long)orientation);
return AVCaptureVideoOrientationPortrait;
}
Этот код работает почти идеально. Однако возникает одна проблема: если вы быстро вращаете iOS-устройство на 180 градусов, камера будет отображаться с ног на голову.
Вот что вид камеры выглядит перед вращением:
А вот как это выглядит после вращения:
Кроме того, здесь моя реализация viewDidLayoutSubviews
:
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
previewLayer.frame = self.view.bounds;
self.view.translatesAutoresizingMaskIntoConstraints = NO;
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.view.layer addSublayer:previewLayer];
if (previewLayer.connection.supportsVideoOrientation) {
previewLayer.connection.videoOrientation = [self interfaceOrientationToVideoOrientation:[UIApplication sharedApplication].statusBarOrientation];
}
}
Есть ли у кого-нибудь представление о том, почему просмотр камеры будет перевернут, когда произойдет поворот на 180 градусов?
Я видел это в Apple, инструменты, поэтому я не уверен, что это ваша ошибка. –
@PaulCezanne Ах, интересно! Какие? Я просто попытался воспроизвести его в приложении для камеры и не смог этого сделать. – narner
Я видел его в камере и сообщениях, но, возможно, я запустил Camera from Messages. Не могу вспомнить. Я также думаю, что это произошло больше в iOS8.0, но не помню, как недавно я видел его у камеры, но я, конечно, видел вращательную странность в 8.3 при запуске камеры из сообщений. –