gpt4 book ai didi

ios - 获取从照片库中选取的视频的缩略图

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:48 25 4
gpt4 key购买 nike

我知道这个问题已经在 stackoverflow 上被问过很多次了。但我的问题是不同的。我正在迭代照片库的相册以获取所有视频及其缩略图。现在,问题是,我的代码获取每个视频的缩略图的速度非常慢。例如,我的相机胶卷中有 14 个视频,生成缩略图的总时间约为 3-4 秒。我正在使用这段代码。



<pre><code>+(UIImage*)imageFromVideoAtURL:(NSURL*)contentURL {
UIImage* theImage = nil;
AVURLAsset* asset = [[AVURLAsset alloc] initWithURL:contentURL options:nil];
AVAssetImageGenerator* generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform = YES;
NSError* err = NULL;
CMTime time = CMTimeMake(1, 60);
CGImageRef imgRef = [generator copyCGImageAtTime:time actualTime:NULL error:&err];

theImage = [[[UIImage alloc] initWithCGImage:imgRef] autorelease];

CGImageRelease(imgRef);
[asset release];
[generator release];

return theImage;
}
</code></pre>

<p></p>

我正在寻找一种快速获取所有视频缩略图的方法,这样用户就不必等待。我在 Apple store 上看到应用程序在几微秒内完成同样的事情。请帮忙。

我也试过这段代码来生成缩略图,它也很慢。

    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:mediaUrl];
moviePlayer.shouldAutoplay = NO;
UIImage *thumbnail = [[moviePlayer thumbnailImageAtTime:0.0 timeOption:MPMovieTimeOptionNearestKeyFrame] retain];
[imageView setImage:thumbnail]; //imageView is a UIImageView

最佳答案

如果您从图片库加载视频,它应该已经有视频的嵌入缩略图。这可以使用 ALAsset 类的 thumbnailaspectRatioThumnail 方法访问。

因此在您的情况下,缩略图可以像这样加载:

ALAssetLibrary* lib = [ALAssetLibrary new];
[lib assetForURL:contentURL resultBlock:^(ALAsset* asset) {
CGImageRef thumb = [asset thumbnail];

dispatch_async(dispatch_get_main_queue(), ^{
//do any UI operation here with thumb
});
}];

请确保在主队列中进行任何 UIKit 调用,因为 assetForURL:: 方法可能会在某些后台线程中调用 resultBlock

关于ios - 获取从照片库中选取的视频的缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25849844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com