【发布时间】:2014-09-09 04:57:36
【问题描述】:
我正在创建一个照片幻灯片,在 iOS 上的图像之间具有复杂的过渡。 Core Animation 不适合这个目的,因为可能的过渡是有限的,所以我求助于 Opengles 2.0。问题是将图像上传到 GPU 并创建纹理是一项耗时的操作,即使对于 960x640 图像也需要大约 200 毫秒,这不适合实时播放场景。预先创建所有纹理是不可行的,因为它们可能有 100 个。我想知道 Core Animation 如何处理这个问题,并且无论您在动画中分配多少 CGImage 都足够流畅以运行? (只要图像在不同时间呈现,而不是一起呈现)。
【问题讨论】:
-
您希望每秒更换幻灯片超过 5 次?还是只是您担心的延迟?此类问题的常见策略是在您当前显示的内容之前加载一两张幻灯片。因此,一旦您第一次需要幻灯片的图像,它就已经加载了。您可以将其视为幻灯片的缓存,您可以在其中预取您将很快需要的条目。
-
是的,我担心的是延迟。它应该作为视频在 AVPlayer 上运行,因此延迟要求会很严格。我只需要了解处理它的最佳方法,尤其是当您在视频合成中寻找时,图像会来得太快。
标签: ios core-animation opengl-es-2.0 avfoundation calayer