2016-09-13 1 views
0

Не уверен, что с этим делать. Кому я звоню/что мне делать, чтобы это разрешить? Руководство по программированию AVFoundations имеет функцию hasFlash и поддерживает функцию flashmode, но они не работают должным образом. Передняя камера должна возвращать значение false, но вместо этого возвращает true.AVCaptureDevice.hasFlash возвращает true для передней камеры, когда нет вспышки

if flash && AVCaptureDevicePosition.Front == currentCamera.position{ 
      if currentCamera.hasFlash && currentCamera.isFlashModeSupported(.On){ 
      if let _ = try? currentCamera.lockForConfiguration() { 
       currentCamera.flashMode = .On 
       currentCamera.unlockForConfiguration() 
       let videoConnection = stillImageOutput!.connectionWithMediaType(AVMediaTypeVideo) 
       stillImageOutput?.captureStillImageAsynchronouslyFromConnection(videoConnection, completionHandler: process) 
      } 
     } 
} 

ответ

0

Вы можете проверить, как,

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 
BOOL hasFlash = [device hasFlash]; 

if (hasFlash) { 
    NSLog(@"device has a flash"); 
} 

else{ 

    NSLog(@"device hasn't flash"); 
} 
+0

Спасибо, но я думаю, что defaultDevice является backCamera и hasFlash вернет ложь (возвращает ложь для меня). Это проблема с передней камерой. hasFlash возвращает true для передней камеры. Я не думаю, что передняя камера имеет вспышку (я думаю, hasFlash должен вернуть false для передней камеры). – jDoe

+0

показать свой код, как вы отличаете переднюю камеру сзади? – Lion

+0

if flash && AVCaptureDevicePosition.Front == currentCamera.position if currentCamera.hasFlash && currentCamera.isFlashModeSupported (.on) if let _ = try? currentCamera.lockForConfiguration() { currentCamera.flashMode = .На currentCamera.unlockForConfiguration() пусть videoConnection = stillImageOutput .connectionWithMediaType (AVMediaTypeVideo) stillImageOutput .captureStillImageAsynchronouslyFromConnection (videoConnection, completionHandler: процесс)!? } – jDoe