【发布时间】:2020-07-24 23:50:46
【问题描述】:
我使用此功能在我的相机预览中更改 CIFilter。它可以正常工作,但是在切换了几个过滤器之后, captureOutput 停止被调用,并且预览卡在最后一张捕获的图像上。它不会返回我的“保护让过滤器”。该应用程序不会崩溃 - 当我关闭相机并重新打开它时,它会再次运行。
如何防止这种行为?
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
}
}
【问题讨论】:
标签: swift xcode avfoundation