gpt4 book ai didi

image - thumbnailImageAtTime : now deprecated - What's the alternative?

转载 作者:行者123 更新时间:2023-11-28 21:38:39 29 4
gpt4 key购买 nike

直到 iOS7 更新我一直在使用...

UIImage *image = [moviePlayer thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];

...非常成功,因此我的应用程序可以显示用户刚刚拍摄的视频的静止图像。

我理解这种方法,因为 iOS7 现已弃用,我需要一个替代方法。我看到有一个方法

- (void)requestThumbnailImagesAtTimes:(NSArray *)playbackTimes timeOption:(MPMovieTimeOption)option

如何从中返回图像以便将其放置在 videoReview 按钮图像中?

提前致谢,吉姆。

****编辑问题,尝试通知中心方法后***

我使用了以下代码-

[moviePlayer requestThumbnailImagesAtTimes:times timeOption:MPMovieTimeOptionNearestKeyFrame];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPMoviePlayerThumbnailImageRequestDidFinishNotification::) name:MPMoviePlayerThumbnailImageRequestDidFinishNotification object:moviePlayer];

我将两个 NSNumber 对象的 NSArray 时间设置为 1 和 2。

然后我尝试通过以下方法捕获通知

-(void)MPMoviePlayerThumbnailImageRequestDidFinishNotification: (NSDictionary*)info{

UIImage *image = [info objectForKey:MPMoviePlayerThumbnailImageKey];

然后继续使用此缩略图作为按钮图像作为预览....但它没有用。

如果您能从我的编码中看出哪里出错了,我们将再次感谢您的帮助。干杯

最佳答案

设法找到使用 AVAssetImageGenerator 的好方法,请参阅下面的代码...

AVURLAsset *asset1 = [[AVURLAsset alloc] initWithURL:partOneUrl options:nil];
AVAssetImageGenerator *generate1 = [[AVAssetImageGenerator alloc] initWithAsset:asset1];
generate1.appliesPreferredTrackTransform = YES;
NSError *err = NULL;
CMTime time = CMTimeMake(1, 2);
CGImageRef oneRef = [generate1 copyCGImageAtTime:time actualTime:NULL error:&err];
UIImage *one = [[UIImage alloc] initWithCGImage:oneRef];
[_firstImage setImage:one];
_firstImage.contentMode = UIViewContentModeScaleAspectFit;

在头文件中,请导入

#import <AVFoundation/AVFoundation.h>

它工作完美,我已经能够从 viewDidLoad 调用它,这比从 viewDidAppear 调用已弃用的 thumbNailImageAtTime: 更快。

希望这对遇到同样问题的其他人有所帮助。

* **Swift 5.1 更新 ****

有用的功能...

    func createThumbnailOfVideoUrl(url: URL) -> UIImage? {
let asset = AVAsset(url: url)
let assetImgGenerate = AVAssetImageGenerator(asset: asset)
assetImgGenerate.appliesPreferredTrackTransform = true

let time = CMTimeMakeWithSeconds(1.0, preferredTimescale: 600)
do {
let img = try assetImgGenerate.copyCGImage(at: time, actualTime: nil)
let thumbnail = UIImage(cgImage: img)
return thumbnail
} catch {
print(error.localizedDescription)
return nil
}
}

关于image - thumbnailImageAtTime : now deprecated - What's the alternative?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19105721/

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