2016-07-05 59 views
1

当AVPlayer处于第一帧时,我想在视频中显示与YouTube海报帧不同的帧。你会如何完成这样的事情?AVPlayer海报帧

+1

我会通过阅读AVAssetImageGenerator文档开始。 apple.com/library/ios/documentation/AVFoundation/Reference/AVAssetImageGenerator_Class/index.html – matt

+0

感谢您的回复。这有助于获得框架。我只需要在AVPlayerViewController的'contentOverlayView'属性中显示这个图像,还是有更好的方法? –

回答

0

你会相应地设置任何可见图层的内容属性:

UIImage *image = [UIImage imageWithCGImage:...]; // replace ... with the CGImage returned by AVAssetImageGenerator 
view.layer.contents = (__bridge id)image.CGImage; 

奇怪的是,你必须创建一个UIImage,然后将其转换回CGImage设置图层的内容属性。您可以在之后立即使用CFRelease或使用__weak或__autoreleasing指示符或仅使用@autoreleasepool来释放UIImage。

不要让任何人告诉你,这是消耗内存或缓慢。如果你通过NSThread把它从主体中分离出来,它就像其他任何手段一样快;而且,我之前在一个屏幕上以这种方式显示了80个UIImage。

不过,还是那句话,多线程和内存管理是我坚强的西服,因为你可以在这里看到:HTTPS://开发商

https://youtu.be/7QlaO7WxjGg