- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
经过反复试验,我发现 iPhone 6 及以下机型的前置摄像头不支持点击对焦。但是有没有办法改变曝光?我试过下面的代码,但没有任何反应。后置摄像头用这种方法对焦很好,但是当我切换到前置摄像头时没有任何反应。 (我使用的是定制相机)。
如有任何帮助,我们将不胜感激!
- (void) focusAtPoint:(CGPoint)point
{
AVCaptureDevice *device = [deviceInput device];
NSArray * inputs = session.inputs;
for (AVCaptureDeviceInput * INPUT in inputs) {
AVCaptureDevice * Device = INPUT.device ;
if ([ Device hasMediaType:AVMediaTypeVideo ]) {
AVCaptureDevicePosition position = Device.position;
if (position == AVCaptureDevicePositionFront)
{
//code for setting exposure
if ([device isExposureModeSupported:AVCaptureExposureModeContinuousAutoExposure]) {
NSError *error;
[device lockForConfiguration:&error];
CGPoint exposurePoint = point;
[device setExposurePointOfInterest:exposurePoint];
[device setExposureMode:AVCaptureExposureModeContinuousAutoExposure];
[device unlockForConfiguration];
}
}
else if(position == AVCaptureDevicePositionBack)
{
//code for focusing
}
}
}
}
最佳答案
它可以帮助你。
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let screenSize = cameraView.bounds.size
let frameSize:CGSize = view.frame.size
if let touchPoint = touches.first {
var location:CGPoint = touchPoint.locationInView(cameraView)
print("Tap Location : X: \(location.x), Y: \(location.y)")
if cameraManager.cameraDevice == .Front {
print("Front camera is used")
location.x = frameSize.width - location.x;
}
else {
print("Back camera is used")
}
// let x = location.y / frameSize.height
let x = location.x / frameSize.width
let y = 1.0 - (location.x / frameSize.width)
let focusPoint = CGPoint(x: x, y: y)
print("POINT : X: \(x), Y: \(y)")
// let captureDevice = AVCaptureDevice.devices().first as? AVCaptureDevice
let captureDevice = (AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo) as! [AVCaptureDevice]).filter{$0.position == .Front}.first
if let device = captureDevice {
do {
try device.lockForConfiguration()
let focusSupport:Bool = device.focusPointOfInterestSupported
let exposureSupport:Bool = device.exposurePointOfInterestSupported
print(" AVCaptureFocusMode.AutoFocus: \(device.isFocusModeSupported(AVCaptureFocusMode.AutoFocus))")
print(" AVCaptureFocusMode.ContinuousAutoFocus: \(device.isFocusModeSupported(AVCaptureFocusMode.ContinuousAutoFocus))")
print(" AVCaptureFocusMode.Locked: \(device.isFocusModeSupported(AVCaptureFocusMode.Locked))")
print(" AVCaptureExposureMode.AutoExpose: \(device.isExposureModeSupported(AVCaptureExposureMode.AutoExpose))")
print(" AVCaptureExposureMode.ContinuousAutoExposure: \(device.isExposureModeSupported(AVCaptureExposureMode.ContinuousAutoExposure))")
print(" AVCaptureExposureMode.Locked: \(device.isExposureModeSupported(AVCaptureExposureMode.Locked))")
if focusSupport {
print("focusPointOfInterestSupported: \(focusSupport)")
device.focusPointOfInterest = focusPoint
// device.focusMode = .ContinuousAutoFocus
device.focusMode = .AutoFocus
// device.focusMode = .Locked
print("Focus point was set successfully")
}
else{
print("focusPointOfInterestSupported is not supported: \(focusSupport)")
}
if exposureSupport {
print("exposurePointOfInterestSupported: \(exposureSupport)")
device.exposurePointOfInterest = focusPoint
device.exposureMode = AVCaptureExposureMode.ContinuousAutoExposure
print("Exposure point was set successfully")
}
else{
print("exposurePointOfInterestSupported is not supported: \(exposureSupport)")
}
device.unlockForConfiguration()
}
catch {
// just ignore
print("Focus point error")
}
}
关于ios - 如何更改前置摄像头的曝光?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32298450/
我正在使用navigator.getUserMedia限制访问用户的网络摄像头,使用提要作为 HTML 的源 然后将其流复制到 drawImage一个语境。我这样做是为了每隔一段时间就拍一张快照。 我
我有一个数据层(包含与 MongoDB 的连接)、一个域层(包含存储库和实体)和一个服务层(包含服务和模型) 现在因为我的实体使用 ObjectId,它们需要 MongoDB 的知识(这样可以吗?)
现在在我的相机应用程序中,我允许用户触摸任意位置来设置焦点和曝光,但我如何才能像 Apple 的相机应用程序一样获得两全其美的效果? 例如,用户可能希望通过触摸来聚焦前景中的某物,但如果场景变化足够大
我想实现标准的用户体验,在预览中点击一个点,以将自动对焦和自动曝光点调整到他们点击的位置。我找到了 Preview.focus() 函数,但是它说它需要“传感器坐标系”中的尺寸,我假设它与 Textu
我需要对大量照片进行排序,去除模糊图像(由于相机抖动)、曝光过度/不足的图像,并检测图像是横向还是纵向拍摄。这些事情可以使用图像处理库在图像上完成吗?或者它们仍然超出算法解决方案的范围吗? 最佳答案
我正在尝试调整网络摄像头的亮度。我需要 3 张不同亮度设置的不同照片。我不想让它成为手动的,所以如果想在程序中包含设置。 下面是我正在使用的代码。使用方法 GetFrame() 可以从网络摄像头获取下
我目前被困在图片视频项目上。 问题: 我正在从 UE4 中提取图片,由于一个错误,在屏幕截图的渲染过程中并未考虑所有灯光。输出是 HDR 图像。我想获得更好的亮度,因为导出的图片很暗,就像第一次曝光一
在过去的两天里,我遇到了 docker 问题,但我可以得到它。按照 docker 文档,您可以使用 EXPOSE 公开容器将监听连接的端口。到目前为止,一切都很好! 如果我的应用程序在端口 8080
自一周以来,我一直在尝试为我的 IOS 应用实现一些图像处理滤镜,如白平衡、曝光和分割色调(如在 Photoshop 中),但我没有获得实现其中任何一个的标准实现。 我通过ImageMagick找到了
据外媒 LOGGER 消息,小米手环 6 的信息在另一款智能手环应用Zepp中泄露。这款应用的固件代码中,出现了 “MI Smart Band 6”字样,还展现了其通过中国无线电认证的 CMIIT
据外媒Samsung Mobile报道,消息人士称,三星即将推出的Galaxy Watch智能手表将具有物理表圈。我们暂时将其称为Galaxy Watch 2。 去年,三星在八个月的时间内发布了两
我正在快速开发一个 MAC 应用程序,我现在可以在 NSView 上预览相机,我想更改亮度/对比度/白平衡和所有与相机相关的设置。 我正在使用 AVFoundation 框架来预览相机,我有 slid
据外媒 gsmarena 报道,realme Watch 2 已经通过了FCC 认证,并且被曝光了完整的设计规格。 realme Watch 2 代号为 RMW2008,屏幕方面与上一代相同,采用
我是一名优秀的程序员,十分优秀!