我正在使用來自Apple的AVCam示例應用程序。iPhone應用程序 - 在橫向模式下顯示AVFoundation視頻
本示例使用AVFoundation爲了在視圖上顯示視頻。
我想從AVCam做一個風景應用程序沒有運氣。
當屏幕方向改變時,視頻顯示在視圖上旋轉。有沒有辦法處理這個問題?
我正在使用來自Apple的AVCam示例應用程序。iPhone應用程序 - 在橫向模式下顯示AVFoundation視頻
本示例使用AVFoundation爲了在視圖上顯示視頻。
我想從AVCam做一個風景應用程序沒有運氣。
當屏幕方向改變時,視頻顯示在視圖上旋轉。有沒有辦法處理這個問題?
當您創建預覽層:
captureVideoPreviewLayer.orientation = UIInterfaceOrientationLandscapeLeft;
並管理的循環的方法:
-(void)willAnimateRotationToInterfaceOrientation:
(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration {
[CATransaction begin];
if (toInterfaceOrientation==UIInterfaceOrientationLandscapeLeft){
captureVideoPreviewLayer.orientation = UIInterfaceOrientationLandscapeLeft;
} else {
captureVideoPreviewLayer.orientation = UIInterfaceOrientationLandscapeLeft;
}
[CATransaction commit];
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:NO];
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
爲我工作。
您是否使用預覽圖層的方向和重力設置?
previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:session];
previewLayer.frame = CGRectMake(0, 0, 480, 300);
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
previewLayer.orientation = AVCaptureVideoOrientationLandscapeRight;
previewLayer.automaticallyAdjustsMirroring = YES;
申報
- (BOOL)shouldAutorotate;
在.H。
然後做:
在您的m這將迫使它不能轉動
- (BOOL)shouldAutorotate {
return NO;
}
。
注意:由於方向屬性已棄用,因此您需要[在連接上設置videoOrientation屬性](http://stackoverflow.com/a/22187500/35690)。 – Senseful 2014-03-05 02:53:23