这个数据是从摄像头过来的 uuimage都是不同的对象 怎么能把这些uiimage变成视频展示出来呢 如果不断地更新UIImageVIew的image的话 会内存不足导致程序闪退
dispatch_sync(dispatch_get_main_queue(), ^{
CGSize imageSize = [UIScreen mainScreen].bounds.size;
UIGraphicsBeginImageContext(imageSize);
[targetView.layer renderInContext:UIGraphicsGetCurrentContext()];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
if (buffer == NULL){
buffer = [self pixelBufferFromCGImage:[image CGImage] size:size];
}
if (buffer)
{
CFAbsoluteTime interval = (CFAbsoluteTimeGetCurrent() - startTime) * 1000;
CMTime currentSampleTime = CMTimeMake((int)interval, 1000);
if(![adaptor appendPixelBuffer:buffer withPresentationTime:currentSampleTime]){
printf("FAIL");
}
++frame;
printf("removing buffer……");
image = nil;
CFRelease(buffer);
// [videoWriterInput markCurrentPassAsFinished];
// [videoWriter finishWritingWithCompletionHandler:^{
// CGImageRelease(image.CGImage);
// }];
//
buffer = NULL;
}
});
要在一个同步队列里面做uiimage创建和压帧操作,不然uiimage对象是不会被释放掉的。