2011-02-18 32 views
1

我正在寻找为许多不同文档类型(mp4,pdf,png和ppt)创建缩略图。我已经看到了单独执行它们的不同方法 - MPMovieplayerController:requestThumbnailImagesAtTimes或获取当前图层的UIGraphicsGetCurrentContext(有效截屏)。不同类型多媒体的自定义缩略图

有没有更好的方法来获得这些文件的缩略图?

获取项目缩略图的首选方法是什么?每种方法都不同?

回答

0

据我所知,没有一种通用的方法来做到这一点。我很想被证明是错误的。

我在当前正在编写的应用程序中有相同的要求,并且昨天写了缩略图生成器。我采取的方法是将路径传递到文件和完成处理程序块直至缩略图生成器对象。

缩略图生成器具有NSOperationQueue,它在后台线程中生成缩略图生成过程并立即返回占位符缩略图。

生成缩略图时,缩略图生成器会调用主线程上的完成处理程序。您可能需要使用一个NSInvocation对象来完成这部分。

如果您要生成多个缩略图,则同步执行此操作会导致明显的延迟。使用占位符+完成处理程序块方法意味着UI保持响应。

在主线程上调用完成处理程序块很重要,因为它几乎肯定会更新您的视图,这应该只能在主线程上完成。如果你不这样做,你会得到一些非常奇怪的错误,例如滚动视图直到你滚动它们才显示它们的内容。

您不应该真的需要使用MPMoviePlayerController来获取视频的缩略图; AVAssetImageGenerator是“苹果认可”的做法;有一个如何在the AV Foundation Programming Guide中执行此操作的示例。

+0

感谢您的帮助。你是否有一些关于你正在谈论的主持人+完成的例子。我以前没有用过。而且,您是否只是查看每个文件的文件扩展名以确定每个项目使用哪个缩略图? – smcdrc 2011-02-18 20:38:36

相关问题