使用AVCaptureSession的convertPoint: toLayer:
方法来手动转换坐标。
示例代码:
// videoPreviewLayer为AVCaptureVideoPreviewLayer对象
// captureDevice为AVCaptureDevice对象
CGPoint pointInDeviceCoordinates = CGPointMake(100, 100);
CGPoint pointInLayerCoordinates = [videoPreviewLayer captureDevicePointOfInterestForPoint:pointInDeviceCoordinates];
CGPoint pointInViewCoordinates = [videoPreviewLayer convertPoint:pointInLayerCoordinates toLayer:self.view.layer];
其中,pointInDeviceCoordinates
为采集设备的坐标,pointInLayerCoordinates
为AVCaptureVideoPreviewLayer中的坐标,pointInViewCoordinates
为在UIView中的坐标。