针对不同类型的多媒体的自定义缩略图

时间:2011-02-18 18:51:33

标签: iphone objective-c mpmovieplayercontroller thumbnails

我希望为许多不同的文档类型(mp4,pdf,png和ppt)创建缩略图。我已经看到了单独执行它们的不同方法--MPMovieplayerController:requestThumbnailImagesAtTimes或获取当前图层的UIGraphicsGetCurrentContext(实际上是屏幕截图)。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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

你不应该真的需要使用MPMoviePlayerController来获取视频的缩略图; AVAssetImageGenerator是“Apple批准”的方式;有一个如何在the AV Foundation Programming Guide中执行此操作的示例。