2017-01-07 3 views
0

Ich arbeite daran, die Thumbnails der Videos zu zeigen. Hier ist mein Code.Thumbnail-Generierung ist langsam in IOS

override func viewDidLoad() { 
    super.viewDidLoad() 
for str in self.imgArray 
     { 
      let url = NSURL(string: str) 
      let movieAsset = AVURLAsset(URL: url!, options: nil) 
      let assetImageGemerator = AVAssetImageGenerator(asset: movieAsset) 
      assetImageGemerator.appliesPreferredTrackTransform = true 
      let frameRef = try! assetImageGemerator.copyCGImageAtTime(CMTimeMake(1, 2), actualTime: nil) 
      let image = UIImage(CGImage: frameRef) 
      self.imagesArray.append(image) 
     } 
} 

Mit diesem erhalten ich Thumbnails richtig. Das Problem besteht darin, dass beim Generieren des Miniaturbilds eine Verzögerung von etwa 5-10 Sekunden auftritt. Gibt es trotzdem, dass ich die Geschwindigkeit dieses Codes verbessern und das Thumbnail schnell generieren könnte?

Antwort

0

Ich glaube nicht, dass es eine Möglichkeit gibt, den Code tatsächlich zu beschleunigen - versuchen Sie es mit CMTimeMake(0, 10). Vielleicht wird es den Code schneller, da einige Videodateien einige Zeit brauchen, um zu suchen.

Ich denke, Sie müssen Bilder, die Sie aus dem Code erhalten haben, zwischenspeichern und die zwischengespeicherten Bilder das nächste Mal konsultieren, damit es insgesamt schneller läuft. Es gibt viele Möglichkeiten, Bilder zu cachen - mit NSCache ist eine Option.

Als Randnotiz dauert es nicht 5-10 Sekunden, um Miniaturbilder zu erhalten. Es dauerte normalerweise weniger als eine Sekunde.