私は Apple が提供する AVCam の例を使用していますが、アプリの目的のために多少変更されています。ただし、他のいくつかの問題を修正することを除いて、元のものはどれも実際には変更されていません. しかし、ランドスケープ モードで動作させることになると、大きな障害にぶつかりました。
stackoverflow に関する別の質問から取得した正しいクラスに次のコードがあります。
-(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);
}
しかし、うまくいきません。このコードの目的は、電話を動かしたときに横向きにできるようにすることでした。向きを変えるたびに、コンソールに警告がポップアップ表示されます。
WARNING: -[<AVCaptureVideoPreviewLayer: 0x1ed97620> setOrientation:] is deprecated. Please use AVCaptureConnection's -setVideoOrientation:
この非推奨エラーを修正するために何をすべきかわからない、または非推奨がランドスケープに移行しない原因であるかどうか。助けてください!