2016-07-05 58 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