1
如何使用UIImageView來顯示.mov文件可見框架,例如可見的預覽框架。取景器或任何YouTube視頻等如何從應用程序的目錄中的視頻中抓取單幀?
我希望能夠從保存到應用程序庫目錄的.mov文件中獲得預覽幀,因此它們不會是AVAssets。
如何使用UIImageView來顯示.mov文件可見框架,例如可見的預覽框架。取景器或任何YouTube視頻等如何從應用程序的目錄中的視頻中抓取單幀?
我希望能夠從保存到應用程序庫目錄的.mov文件中獲得預覽幀,因此它們不會是AVAssets。
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;
}
的表現如何將是基於一個UISliders快速設置圖像價值翻譯成視頻時間間隔?例如50x50圖像視圖。 – jarryd
@ Helium3資產管理器框架非常快。如果將它與一些智能緩存機制和性能調整相結合,例如每n秒只加載1個縮略圖,那麼您就是黃金。 – memmons
也不要在urlstring之前添加file:// – jarryd