2017-01-07 1 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 초도 채 걸리지 않았습니다.

관련 문제