Я пытаюсь установить фокус с передней камерой.ios 9 AVCaptureDevice установка фокуса
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.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.devicesWithMediaType(AVMediaTypeVideo) as! [AVCaptureDevice]).filter{$0.position == .Front}.first
if let device = captureDevice {
do {
try device.lockForConfiguration()
let support:Bool = device.focusPointOfInterestSupported
if support {
print("focusPointOfInterestSupported: \(support)")
device.focusPointOfInterest = focusPoint
// device.focusMode = .ContinuousAutoFocus
device.focusMode = .AutoFocus
// device.focusMode = .Locked
device.unlockForConfiguration()
print("Focus point was set successfully")
}
else{
print("focusPointOfInterestSupported is not supported: \(support)")
}
}
catch {
// just ignore
print("Focus point error")
}
}
}
}
Он работает на iphone6 для камеры заднего вида. Но, когда я активирую переднюю камеру, она обмоталась. focusPointOfInterestSupported всегда возвращает false.
Как я могу решить эту проблему. Могу ли я установить фокусную точку программно?
Спасибо!
Спасибо за ответ. Ты прав. Передняя камера поддерживает только регулировку экспозиции. Знаете ли вы, как насчет масштабирования? Я не могу установить коэффициент масштабирования переднего фотоаппарата с помощью avfoundation. Но некоторые приложения, которые хранятся в магазине Apple, могут устанавливать масштабирование. – gkhanacer
Ни передняя, ни задняя камера iPhone не поддерживают оптический зум. Все «масштабирование», которое делают приложения, фактически просто обрезает изображение, чтобы оно выглядело увеличенным. Если AVFoundation не позволяет вам использовать свой «зум» на передней камере, это может быть потому, что оно имеет меньшее разрешение, чем задняя камера. Приложение Camera также не позволяет масштабировать переднюю камеру, как это происходит с задней камерой. –