カメラのプレビューを表示し、ボタンを押すと画像をクリックするアプリを作成しようとしています。
デバイスが回転したときにプレビューを回転させたいので、使用していました
今までメソッドで使用previewlayer.orientation = toInterfaceorientation
していましたwillAutoRotateToInterfaceOrientation
。しかし、iOS6 でアプリを実行するとsetOrientation
、プレビュー レイヤーのメソッドが非推奨になったという警告が表示されます。
また、それはプレビューを「表示」するためだけだったと思います。画像の実際の向きは変更されず、「接続」のビデオの向きはそのままです!
したがって、setVideoOrientation
AVCaptureConnection のメソッドを使用することをお勧めします。私はそれを使おうとしていますが、何をすべきかわかりません..左右の横向きをサポートしたいです(後で縦向きモードになるかもしれません)。
だから私は書き込みますwillAutoRotateToInterfaceOrientation
`if([connection isVideoOrientationSupported])
{
if(toInterfaceorientation == UIInterfaceOrientationLandscapeLeft)
{
[connection setVideoorientation:AVCaptureConnectionVideoOrientationLandscapeRight];
}
if(toInterfaceorientation == UIInterfaceOrientationLandscapeRight)
{
[connection setVideoorientation:AVCaptureConnectionVideoOrientationLandscapeLeft];
}
}`
しかし、それは実際には機能しません。LandscapeRight の場合は正常に機能しますが、LandscapeLeft の場合は 180 度回転します。
willAutoRotateToInterfaceOrientation
メソッドが呼び出されていること、ブロック内のステートメントが (ブレークポイントを設定することによって) 実行されていることを確認しましたが、結果の向きはこのメソッドが空であるかのようです!
そして、これが画像の実際の向きも変えることを望んでいます。