如何计算AVCaptureDevice的focusPointOfInterest?

问题描述 投票:0回答:3

如何计算给定 AVCaptureDevice 的 focusPointOfInterest(0,0 和 1,1 之间的 CGPoint 值)?

我一直在关注最新 WWDC 的代码示例,但我真的不明白如何进行计算。 另外,我的应用程序处于横向与纵向(如示例中所示)...因此,除了不了解如何计算事物之外,我不确定需要进行哪些调整才能考虑横向方向.

如有任何帮助,我们将不胜感激。

谢谢-wg

iphone objective-c ios4 avfoundation avcapturedevice
3个回答
4
投票

根据http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/03_MediaCapture.html

您传递一个 CGPoint,其中 {0,0} 表示图片区域的左上角,{1,1} 表示横向模式下的右下角,主页按钮位于右侧 - 即使设备处于纵向状态,这也适用模式。


4
投票

如果您有

AVCaptureVideoPreviewLayer
,您可以使用
captureDevicePointOfInterestForPoint
来转换通过点击手势获得的
CGPoint

这样您就不必担心方向问题。


0
投票

您可以通过执行以下操作将点从屏幕坐标旋转到相机坐标:

let interfaceOrientation = (UIApplication.shared.connectedScenes.first as? UIWindowScene)?.interfaceOrientation
switch interfaceOrientation {
case .landscapeLeft:
    break
case .landscapeRight:
    correctedFocusPoint = .init(x: 1 - focusPoint.x, y: 1 - focusPoint.y)
case .portraitUpsideDown:
    correctedFocusPoint = .init(x: 1 - focusPoint.y, y: focusPoint.x)
default:
    correctedFocusPoint = .init(x: focusPoint.y, y: 1 - focusPoint.x)
}
© www.soinside.com 2019 - 2024. All rights reserved.