当AVPlayer在第一帧时,我想在视频中显示一个不同的帧,比如YouTube海报帧。你将如何完成这样的事情呢?
发布于 2016-08-04 23:00:13
您可以相应地设置任何可见图层的contents属性:
UIImage *image = [UIImage imageWithCGImage:...]; // replace ... with the CGImage returned by AVAssetImageGenerator
view.layer.contents = (__bridge id)image.CGImage;奇怪的是,您必须创建一个UIImage,然后将其转换回CGImage以设置层的contents属性。之后,您可以使用CFRelease或使用__weak或__autoreleasing指示符,或仅使用@autoreleasepool来立即释放UIImage。
不要让任何人告诉你这是消耗内存或速度慢的。如果你通过NSThread把它从主线程中分离出来,它和其他方法一样快;而且,我以前已经用这种方式在一个屏幕上显示了80 UIImages。
但话又说回来,多线程和内存管理是我的强项,正如您在这里看到的:
https://stackoverflow.com/questions/38194588
复制相似问题