开发者社区> 问答> 正文

请问IOS 每0.2秒获得一个UIImage对象 如何把这些对象转换为视频显示?

这个数据是从摄像头过来的 uuimage都是不同的对象 怎么能把这些uiimage变成视频展示出来呢 如果不断地更新UIImageVIew的image的话 会内存不足导致程序闪退

展开
收起
爵霸 2016-03-10 17:58:05 2324 0
1 条回答
写回答
取消 提交回答
  • 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对象是不会被释放掉的。

    2019-07-17 18:58:04
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载