didOutputSampleBuffer成功调用我的方法,直到我使用此功能切换摄像机:
func switchCameras() {
captureSession.beginConfiguration()
captureSession.sessionPreset = AVCaptureSessionPresetMedium
var error : NSError? = nil
for input in captureSession.inputs {
captureSession.removeInput(input as! AVCaptureInput)
}
if currentCamera == "back" {
currentCamera = "front"
if captureSession.canAddInput(AVCaptureDeviceInput(device: frontCamera, error: &error)) {
captureSession.addInput(AVCaptureDeviceInput(device: frontCamera, error: &error))
} else {
print(error)
}
} else {
currentCamera = "back"
if captureSession.canAddInput(AVCaptureDeviceInput(device: backCamera, error: &error)) {
captureSession.addInput(AVCaptureDeviceInput(device: backCamera, error: &error))
} else {
}
}
print("chagned")
captureSession.commitConfiguration()
}
Run Code Online (Sandbox Code Playgroud)
切换后,这种方法有时会丢帧,所以我无法拍照.大约5秒后,帧回来了.
func captureOutput(captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: …Run Code Online (Sandbox Code Playgroud)