在实时中捕获特定的CALayer(和子视图)到视频文件(或数据)

时间:2013-02-05 14:17:10

标签: iphone ios5 uiimageview calayer cgimage

我有一个UIView(及其CALayer),它有一个UIImageView作为子视图。 UIImageView是动画的(imageView.animationImages)。

我想将当前播放的动画捕捉到视频文件或视频数据(稍后转换为视频文件),但不捕捉屏幕上的所有元素,如按钮和其他UI,但只是特定的UIView(不是促销视频,而是作为应用程序功能的一部分)。

我尝试实施ScreenCaptureView,但是虽然它允许我将特定的UIView捕获到实时中的视频文件中,但它不会捕获动画{{1}它只显示第一帧...

我考虑过使用CALayer的UIImageView,然后以某种方式将renderInContext:(当前帧)附加到视频数据,然后根据数据制作视频文件(或者直接附加到视频文件中)。

我有点卡在附加部分......我真的不知道如何处理当前帧的渲染数据。

有没有人有任何提示或建议?

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:1)

我对ScreenCaptureView.m进行了更改,现在它捕获了UIImageView动画:

[self.layer renderInContext:context];

更改为:

[self.layer.presentationLayer renderInContext:context];

虽然设备(iPhone 4)的性能实际上非常糟糕......