2017-05-22 11 views
0

ビデオURLから複数のサムネイルをUIImageViewに読み込もうとしています。私はそれを把握していないようだ。私は現在、単一のサムネイルを読み込む方法を見つけましたが、複数のサムネイルをどのように行うかを理解できないようです。私のviewDidLoad内複数のサムネイルを生成するSwift 3

private func thumbnailForVideoAtURL(url: NSURL) -> UIImage? { 

    let asset = AVAsset(URL: url) 
    let assetImageGenerator = AVAssetImageGenerator(asset: asset) 

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

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

& &:ここ

はコードである

imageView.frame = CGRect(x:0, y: self.view.frame.height/2, width: self.view.frame.width, height: 100) 
     imageView.image = thumbnailForVideoAtURL(url: url!) 
     view.addSubview(imageView) 
+0

UITableViewまたはCollectionViewを使用して複数のサムネイルを読み込むことができます。 –

+0

私はそれが過度にあなたが考えることはないと思いますか?私の全体的な目的は、これを私がやったウイリアンに実装することですが、今は複数のピンが必要です – AndrewS

答えて

1

あなたが代わりにcopyCGImage(at:actualTime:)

AVAssetImageGeneratorのgenerateCGImagesAsynchronously(forTimes:completionHandler:)方法を使用する必要があり、デフォルト有効になってビデオトラックを使用していますimagを生成するes。単一の画像を孤立して生成するには、複雑な相互依存性を有する多数のビデオフレームを復号化する必要があります。一連のイメージが必要な場合、非同期メソッドgenerateCGImagesAsynchronously(forTimes:completionHandler :)を使用すると、再生時に使用されたものと同様のデコード効率を使用して効率を大幅に上げることができます。