2017-05-22 17 views
0

비디오 URL의 여러 축소판을 UIImageView로로드하려고합니다. 나는 그것을 이해하는 것처럼 보이지 않는다. 현재 하나의 미리보기 이미지를로드하는 방법을 찾았으나 여러 번 수행하는 방법을 파악할 수 없습니다. 내 viewDidLoad에 내여러 Thumbnails 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

과도하게 생각하지 않습니까? 내 전반적인 목표는이 작업을 uirange로 구현하는 것입니다.이 작업은 여러 핀이 필요합니다. – AndrewS

답변

1

대신 copyCGImage(at:actualTime:)

AVAssetImageGenerator의 generateCGImagesAsynchronously(forTimes:completionHandler:) 방법을 사용할 기본 활성화 비디오 트랙을 사용 imag 생성하기 es. 격리 된 단일 이미지를 생성하려면 복잡한 상호 의존성을 갖는 다수의 비디오 프레임을 디코딩해야 할 수 있습니다. 일련의 이미지가 필요한 경우 비동기 메서드 인 generateCGImagesAsynchronously (forTimes : completionHandler :)를 사용하여 훨씬 더 높은 효율성을 달성 할 수 있습니다. 이는 재생 중에 사용되는 것과 유사한 디코딩 효율성을 사용합니다.