2013-09-24 18 views
0

在iOS中使用7改變閃光狀態AVCaptureDevice時:繃閃存上AVCaptureDevice需要停止和啓動AVCaptureSEssion

if ([self.avCaptureDevice isFlashModeSupported:self.avCaptureFlashMode]) 
{ 
    NSError *error = nil; 
    [self.avCaptureDevice lockForConfiguration:&error]; 
    if (!error) [self.avCaptureDevice setFlashMode:self.avCaptureFlashMode]; 
    [self.avCaptureDevice unlockForConfiguration]; 
} 

除非AVCaptureSessions停止,並開始與該設備將不能使用閃光燈

[self.avCaptureSession stopRunning]; 
[self.avCaptureSession startRunning]; 

這會使相機短暫閃爍變黑。是否可以在不停止/啓動會話的情況下切換閃光燈?

回答

0

我在iOS7中有一個類似的Flash相關問題,如果會話有多個輸出(仍然和視頻數據)並且使用了閃存,仍然會捕獲失敗。在https://devforums.apple.com/message/894764找到解決方法(在調用captureStillImageAsynchronouslyFromConnection:completion之前刪除第二個輸出)。顯然這也會暫停視頻,但如果你有快門動畫,它可能更適合。