1

我正在一个项目中工作,我需要拖动图像并为其创建视频,当我在主视图中使用它时效果很好。

我使用ScreencaptureView.hScreencaptureView.m文件进行视频录制,我在主视图中对其进行子视图,并在捕获视图中添加图像对象的子视图。

现在的问题是因为我在ScreencaptureView拖动中查看图像变得很慢。

可以做些什么来解决这个问题。

4

2 回答 2

0

我并不奇怪它会减慢你的动画速度。要捕获并作为图像保存到内存中的数据量是巨大的。这里没有奇迹。数据必须从图形内存刷新到 RAM,然后再到磁盘,这需要很长时间。我向您推荐的是分两步完成。主要思想是实时捕获尽可能少的数据。

- 第 1 步:实时捕捉

在此步骤中,不要将您的子视图放在 ScreencaptureView 中,而是放在普通视图中,或者如果该选项可用,则禁用捕获。仅捕获您在字典中的每个图像上所做的翻译值,例如键引用您的图像的位置(带有指向图像的指针的 N​​SValue)。每帧保存一个字典。然后你有一个字典数组。您可以想象其他解决方案来存储您转储的数据。您可以以 30 fps 或 60 fps 轻松完成。这样,您的捕获非常轻量级,并且动画对于用户来说将是完全流畅的。

-步骤 2:重播 - 后处理

现在您可以将您的子视图放在 ScreencaptureView 中,或者如果已经简单地激活捕获模式。通过读取您记录的值来重播您的动画,并将相应的翻译重新应用于图像(当然,您必须保留它们)并像往常一样捕获帧。现在它可以变慢,但没关系。帧将被一一处理。

这个完成了 !你现在有一个流畅的动画视频截图。

清楚吗 ?

于 2013-03-03T16:50:05.897 回答
0

尝试这个

  • 在触摸开始事件期间,首先,将被拖动到根视图的视图添加为子视图。调用bringSubviewToFront 方法将拖动的视图保持在根视图层次结构的顶部。
  • 确保根视图应该是拖动视图和目标视图的父视图(在您的情况下为 ScreencaptureView)。
  • 在触摸结束事件期间将拖动的视图添加到目标视图(ScreencaptureView)。
于 2013-02-26T14:49:36.620 回答