私は、接続されたカメラからのビデオ入力をキャプチャするためにAVCaptureVideoPreviewLayer(MacOS、iOSではなく)を使用しています。私は、セットアップキャプチャセッションをしましたし、画像を表示するためのUIViewを作成:AVCaptureVideoPreviewLayerをmacOSでミラーリングできません
self.captureLayer = AVCaptureVideoPreviewLayer(session: self.captureSession); self.playerView.layer = self.captureLayer;
すべてが正常に動作している、と私はカメラからの映像を見るが、今私は(垂直)画像をミラーリングします。しかし、層がちょうど空白(親ビューの背景を)行く代わりに画像をミラーリングの
self.captureLayer.transform = CATransform3DMakeScale(-1.0, 1.0, 1.0);
:私はCATransform3DMakeScaleを使用しています。
他のトランスフォーム(サイズ変更など)を試しても問題なく動作しています。私はまた、スーパーレイヤミラーリング試してみた:
self.captureLayer.superLayer?.transform = CATransform3DMakeScale(-1.0, 1.0, 1.0);
をと(それがタイトルバーを含むウィンドウ全体を反映するものの!)これは動作します。
助けてください。私は変換が正しいと信じていますが、何らかの理由でAVCaptureVideoPreviewLayerに適用されません。
私が提供する解決策を試すことができますか? – manishg
ありがとう@manishganvir - 本当に答えとコードのサンプルをありがとう。今週末に試してみますが、これがうまくいけば、横方向のアクセスをミラーリングするだけだと思っていますが、CATransform3DMakeScaleを使って縦にミラーリングすることもできます(私のアプリでも使われています)。 –
@manishganvirちょうどサンプルコードを実行しました。 'self.cameraLayer!.connection.videoOrientation = AVCaptureVideoOrientation.portraitUpsideDown'も私に垂直ミラーリングを提供します。ご協力いただきありがとうございます! –