我正在尝试执行" captureOutput"功能。每1 / X s调用此功能(X取决于摄像机设备的fps)。例如,如果摄像机设置为30fps,则将调用每个0 03。
现在,我想创建一个线程并在不同的上下文中执行它,当结束将结果发送到主线程并连续接受新帧时。
要做到这一点,我尝试使用GDC,如下所示:
private var processImageQueue:dispatch_queue_t = dispatch_queue_create("process_image", DISPATCH_QUEUE_CONCURRENT)
dispatch_async(processImageQueue, {
println("new despatch");
let resultFrame:[Frames] = processImages(sampleBuffer,self.countFrames)
dispatch_async(dispatch_get_main_queue()) {
self.insertFrames(resultFrame)
})
})
但是这个执行阻止了Frames getter。为什么?创建多线程进程的最佳选择是什么?的NSOperation?我也试过,但同样的事情,我没有得到相同的帧率捕获。
感谢