2016-12-31 73 views
0

我正在使用DKImagePickerController從圖庫中選擇視頻並嘗試顯示其縮略圖。不知道爲什麼,但它需要10-15秒才能顯示圖像。任何幫助表示讚賞。需要10-15秒才能顯示的視頻縮略圖

下面的代碼:

tempDkAsset.fetchAVAssetWithCompleteBlock { (tempVideo, info) in 

    tempImageView.image = self.thumbnailForVideoAtURL(tempVideo!) 
} 





func thumbnailForVideoAtURL(_ asset : AVAsset) -> UIImage? { 

    let assetImageGenerator = AVAssetImageGenerator(asset: asset) 

    var time = asset.duration 
    time.value = min(time.value, 2) 

    do { 
     let imageRef = try assetImageGenerator.copyCGImage(at: time, actualTime: nil) 
     return UIImage(cgImage: imageRef) 
    } catch { 
     print("error") 
     return nil 
    } 
} 

回答

4

的問題是,你正在呼籲在後臺線程thumbnailForVideoAtURL。您需要在主線程中,因爲您正在與界面交談。

tempDkAsset.fetchAVAssetWithCompleteBlock { (tempVideo, info) in 
    DispatchQueue.main.async { 
     tempImageView.image = self.thumbnailForVideoAtURL(tempVideo!) 
    } 
} 
+0

我完全忘了塊在後臺線程上運行。謝謝 :) –