2013-08-05 26 views

回答

2

AVFoundation中的AVAssetImageGenerator可用於在專輯和本地應用程序目錄中加載視頻。

這裏是一個輔助方法,將在任何給定的時間間隔返回從視頻URL(應用程序內部或外部)的圖像:

+ (UIImage *)thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time { 

    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil]; 
    NSParameterAssert(asset); 
    AVAssetImageGenerator *assetImageGenerator = [[AVAssetImageGenerator alloc] initWithAsset:asset]; 
    assetImageGenerator.appliesPreferredTrackTransform = YES; 
    assetImageGenerator.apertureMode = AVAssetImageGeneratorApertureModeEncodedPixels; 

    CGImageRef thumbnailImageRef = NULL; 
    CFTimeInterval thumbnailImageTime = time; 
    NSError *thumbnailImageGenerationError = nil; 
    thumbnailImageRef = [assetImageGenerator copyCGImageAtTime:CMTimeMake(thumbnailImageTime, 60) actualTime:NULL error:&thumbnailImageGenerationError]; 

    NSAssert(thumbnailImageRef, @"CGImageRef shall never be nil."); 

    UIImage *thumbnailImage = thumbnailImageRef ? [[UIImage alloc] initWithCGImage:thumbnailImageRef] : nil; 

    return thumbnailImage; 
} 
+0

的表現如何將是基於一個UISliders快速設置圖像價值翻譯成視頻時間間隔?例如50x50圖像視圖。 – jarryd

+1

@ Helium3資產管理器框架非常快。如果將它與一些智能緩存機制和性能調整相結合,例如每n秒只加載1個縮略圖,那麼您就是黃金。 – memmons

+0

也不要在urlstring之前添加file:// – jarryd

相關問題