Я использую эту функцию, чтобы изменить CIFilter в окне предварительного просмотра камеры. Работает как надо, но почему-то после переключения нескольких фильтров captureOutput перестает вызываться, и предварительный просмотр застревает на последнем захваченном изображении. Он не возвращается на мой "фильтр охраны". Приложение не обрабатывает sh - когда я закрываю камеру и снова открываю ее, оно снова работает.
Как я могу предотвратить такое поведение?
func captureOutput(captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: AVCaptureConnection!)
{
guard let filter = Filters[FilterNames[currentFilter]] else
{
return
}
let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
let cameraImage = CIImage(CVPixelBuffer: pixelBuffer!)
filter!.setValue(cameraImage, forKey: kCIInputImageKey)
let filteredImage = UIImage(CIImage: filter!.valueForKey(kCIOutputImageKey) as! CIImage!)
dispatch_async(dispatch_get_main_queue())
{
self.imageView.image = filteredImage
}
}