我一直在设法在iOS7的应用程序中录制截屏视频。那里有一些很棒的应用程序,例如Explain Everything(我不想与之竞争,替换或复制),但我看不到它们如何获得如此流畅的图形记录。看起来他们以自己的专有格式录制,然后在用户要求时导出为电影。
我试过一些库:
Glimpse。不幸的是,它仍然使用renderInContext并且速度很慢
ScreenCaptureView和(看起来是派生的)UIScreenCaptureView。后者使用了新的drawHierachy方法,但是它将iPad的处理器最多提升了96%,并且太慢了,无法平滑绘制;感觉就像是在拖曳手指。
像直接在电影中录制UIView似乎效率太低,无法像在ShowMe或Explain Everything这样的应用中看到的那样,无法创建平滑的基于绘图的截屏视频。
是否有记录平滑绘图的方法,或者在给定的UIView中平滑且可实现的操作?已经存在的(好的)截屏应用程序如何管理此操作?
最佳答案
现在似乎很明显,但这不是一开始。上面的库都使用主线程,因此我实现了自己的解决方案,并使用GCD在后台线程上进行录制。>这样可以释放接口并在录制时停止像颤音一样的效果。
如果不是线程安全的,则不是100%(this post seems to indicate that it's not但可以安全访问this post suggests访问图形堆栈)。它似乎为我工作。我使用了Zoul's solution和drawViewHierarchyInRect:afterScreenUpdates在后台线程中呈现视图的内容。它出奇地快,我还没有任何问题。