2017-01-07 20 views
0

私はビデオのサムネイルを表示しています。 ここに私のコードです。サムネイルの生成が遅いです

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) 
     } 
} 

これを使用すると、正しくサムネイルが表示されます。問題は、サムネイル画像を生成するのに約5〜10秒の遅延があることである。とにかくこのコードの速度を向上させ、サムネイルをすばやく生成できるかどうか

答えて

0

実際にコードをスピードアップする方法はないと思います。CMTimeMake(0, 10)を試してみてください。おそらく、ビデオファイルの中にはシークするのに時間がかかるため、コードが高速になることもあります。

コードから取得したイメージをキャッシュし、次にキャッシュされたイメージを参照して全体的に高速に実行する必要があると思います。画像をキャッシュするには、多くの方法があります - NSCacheを使用することはオプションです。

サムネイル画像の取得に5〜10秒かかることはありません。それは通常1秒以下かかった。

関連する問題