5

avcapturevideopreviewlayer の向きが iOS 6 で廃止されたようです。新しいコードを知っている人はいますか? これが私の現在の(減価償却された)コードです:

[self setPreviewLayer:[[AVCaptureVideoPreviewLayer alloc] initWithSession:[self captureSession]]];
[[self previewLayer] setVideoGravity:AVLayerVideoGravityResizeAspectFill];
previewLayer.orientation = UIInterfaceOrientationLandscapeRight;
4

3 に答える 3

19

ドキュメントを確認しましたか?それはたった1行です:

レイヤーの向き。(iOS 6.0 では非推奨。代わりにvideoOrientation (AVCaptureConnection) を使用してください。)

だから使用:

[[AVCaptureVideoPreviewLayer connection] setVideoOrientation: AVCaptureVideoOrientationLandscapeRight];

また

AVCaptureVideoPreviewLayer.connection.videoOrientation= AVCaptureVideoOrientationLandscapeRight;
于 2012-10-31T14:54:01.970 に答える
3

非推奨の orientation(AVCaptureVideoPreviewLayer) の代わりに videoOrientation(AVCaptureConnection) を使用しようとしましたが、ビデオ プレビューが回転しなくなりました。

私はこれを置き換えました:

AVCaptureVideoPreviewLayer *previewLayer = ...;
previewLayer.orientation = AVCaptureVideoOrientationLandscapeRight;

これとともに:

AVCaptureVideoPreviewLayer *previewLayer = ...;
previewLayer.connection.videoOrientation = AVCaptureVideoOrientationLandscapeRight;

ただし、ビデオのプレビューは回転しませんでした。問題は、AVCaptureDeviceInput を AVCaptureSession に追加する前に、AVCaptureVideoPreviewLayer を追加して変更したことです。したがって、私の AVCaptureVideoPreviewLayer の接続は null でした。解決策は、AVCaptureDeviceInput を AVCaptureSession に追加した後に、AVCaptureVideoPreviewLayer を追加することでした。

于 2014-05-07T09:27:17.877 に答える