这个数据是从摄像头过来的 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对象是不会被释放掉的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。