2017-01-22 15 views
2

Есть ли способ указать устройству, что при установке setTorchModeOnWithLevel они активируют Retina Flash (передняя вспышка iPhone6s/7) вместо спинки True- Tone LED Flash?iOS 10.2 - Активируйте Retina Flash вместо заднего светодиода с факелом

Следующий стандартный код, как представляется, только в состоянии активировать заднюю светодиодную:

AVCaptureDevice.defaultDevice(withDeviceType: AVCaptureDeviceType.builtInDualCamera, 
    mediaType: AVMediaTypeVideo, position: .front) 
try device.lockForConfiguration(); 
let torchOn = !device.isTorchActive; 
try device.setTorchModeOnWithLevel(1.0); 
device.unlockForConfiguration(); 

Существует ли API в прошивкой для одного, чтобы иметь доступ к Retina Flash?

+0

Является ли ваше устройство захвата передней камерой? (AVCaptureDevicePosition.front) – Emptyless

+0

@Emptyless: Да, я использую конструктор, где я передаю «position: .front» (обновленный вопрос с конструктором). Любые идеи относительно того, почему это может не проявиться? Благодарю. –

+0

'AVCaptureDevice' также имеет кучу свойств для' flash' (отдельно от 'torch'). Вы пробовали их? Дополнительная информация: https://developer.apple.com/reference/avfoundation/avcapturedevice/1388116-flashmode –

ответ

4

AFAIK iOS НЕТ имеют API, специфичный для Retina Flash. (как датированная прошивка 10.2)

От Apple, разработчик thread

Retina Вспышка iPhone 6с и 6s Plus содержат чип пользовательского дисплея, который позволяет сетчатка дисплей кратковременно мигает 3 раза ярче, чем его обычная максимальная освещенность. Новый API не был добавлен для поддержки этой функции . Начиная с iOS 4, AVCaptureDevice поддерживает свойства -hasFlash, -isFlashModeSupported: и -flashMode. IPhone 6s и 6s Plus фронтальные камеры - это первые фронтальные камеры iOS , чтобы ответить YES на -hasFlash. Установив flashMode в фронтальной камере к AVCaptureFlashModeOn или AVCaptureFlashModeAuto, сетчатка вспышка срабатывает, если неподвижное изображение захвачен (см AVCaptureStillImageOutput’s captureStillImageAsynchronouslyFromConnection:completionHandler:), так же, как верный тон срабатывание вспышки для задних обращенного неподвижных камер.

Итак, чтобы ваш код работал, проверьте -hasFlash, а затем установите режим вспышки в положение «Авто» или «Вкл.».

+0

Есть ли способ выполнить Retina Flash, не делая снимок, или это необходимость? –

+0

@ JakeChasan мы не можем запускать сетчатую вспышку, не снимая изображения. Я тоже пытался это понять. но из документации Apple нет никаких опций. – Bluewings