如果您使用的是AVPlayerViewController
,這是播放器控制器的contentOverlayView
屬性的完美使用。這是玩家層和恰好露出用於此目的的控制之間的UIView
:
首先,創建的屏幕截圖:
let asset = AVAsset(URL: URL(string: "")!) // link to some video
let imageGenerator = AVAssetImageGenerator(asset: asset)
let screenshotTime = CMTime(seconds: 1, preferredTimescale: 1)
if let imageRef = try? imageGenerator.copyCGImageAtTime(screenshotTime, actualTime: nil) {
let image = UIImage(CGImage: imageRef)
// see part 2 below
}
現在,添加該圖像作爲在播放器控制器的contentOverlayView
的子視圖:
// in the same try block
let imageView = UIImageView(image: image)
let playerVC = AVPlayerViewController()
let playerItem = AVPlayerItem(asset: asset)
playerVC.player = AVPlayer(playerItem: playerItem)
self.presentViewController(playerVC, animated: true) {
playerVC.contentOverlayView?.addSubview(imageView)
// adjust the frame of your imageView to fit on the player controller's contentOverlayView
}
然後,取出imageView
子視圖當玩家開始玩的資產,或緩衝完成時。
來源
2016-06-22 21:10:24
JAL
@Cris:http://stackoverflow.com/questions/15360721/create-a-thumbnail-or-image-of-an-avplayer-at-current-time? – Larme 2016-06-21 18:39:47
我認爲Larme提到的鏈接會給你一個正確的方向。按需創建縮略圖,並將其疊加在播放器的頂部(也可能是播放按鈕),這樣就不必播放並立即暫停 – Stephenye 2016-06-21 19:33:36
在項目中,我必須構建我需要的新視頻在沒有黑屏或縮略圖的情況下播放。客戶要求我將第一個視頻傳遞給第二個視頻,就好像第二個視頻是下一個視頻一樣,不會中斷 – Cris 2016-06-21 19:57:15