从UIView在iOS上创建流畅的截屏视频

时间:2013-10-23 17:54:31

标签: cocoa-touch ios7

我一直试图在应用程序中在iOS7上录制一个截屏视频。有一些很棒的应用程序,例如Explain Everything(我不想与之竞争,替换或复制),但我看不出他们如何设法如此顺利地记录绘图。它们看起来像是以他们自己的专有格式录制,然后在用户请求时导出到电影。

我尝试了一些库:

  • Glimpse。不幸的是它仍然使用renderInContext并且非常慢
  • ScreenCaptureView和(似乎是衍生品)UIScreenCaptureView。后者使用了新的drawHierachy方法,但它使iPad的处理器高达96%并且速度太慢而无法顺利绘制;感觉就像是在用糖蜜拖着你的手指。

将UIView直接录制到电影中似乎效率太低,无法像在ShowMe或Explain Everything等应用中看到的那样创建流畅的基于绘图的截屏视频。

是否存在记录平滑绘图的方法,或者在给定的UIView中发生的顺利和可实现的方法?那些(好的)截屏视频应用程序如何管理这个?

1 个答案:

答案 0 :(得分:1)

现在看似显而易见,但它还没有开始。以上库都使用主线程,所以我实现了自己的解决方案并使用GCD在后台线程上进行记录>这使得界面自由,并且在录制时停止了类似于星尘的效果。

如果它是线程安全的,则不是100%(this post seems to indicate that it's not但访问图形堆栈的this post suggests可以安全访问。它似乎对我有用。我使用了Zoul's solution和drawViewHierarchyInRect:afterScreenUpdates来渲染后台线程中视图的内容。它的速度非常快,我还没有遇到任何问题。