Jim*_*ney 22 video image deprecated nsnotificationcenter ios7
直到iOS7更新我正在使用...
UIImage *image = [moviePlayer thumbnailImageAtTime:1.0 timeOption:MPMovieTimeOptionNearestKeyFrame];
Run Code Online (Sandbox Code Playgroud)
...取得了巨大成功,因此我的应用程序可以显示用户刚拍摄的视频.
我理解这种方法,因为iOS7现已弃用,我需要一个替代方案.我看到有一种方法
- (void)requestThumbnailImagesAtTimes:(NSArray *)playbackTimes timeOption:(MPMovieTimeOption)option
Run Code Online (Sandbox Code Playgroud)
虽然如何从中返回图像,以便将其放在videoReview按钮图像中?
吉姆,提前谢谢.
****编辑通知中心方法后编辑问题***
我用了以下代码 -
[moviePlayer requestThumbnailImagesAtTimes:times timeOption:MPMovieTimeOptionNearestKeyFrame];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPMoviePlayerThumbnailImageRequestDidFinishNotification::) name:MPMoviePlayerThumbnailImageRequestDidFinishNotification object:moviePlayer];
Run Code Online (Sandbox Code Playgroud)
我制作了两个NSNumber对象1和2的NSArray时间.
然后,我尝试使用以下方法捕获通知
-(void)MPMoviePlayerThumbnailImageRequestDidFinishNotification: (NSDictionary*)info{
UIImage *image = [info objectForKey:MPMoviePlayerThumbnailImageKey];
Run Code Online (Sandbox Code Playgroud)
然后继续使用此缩略图图像作为预览的按钮图像....但它不起作用.
如果您从我的编码中看到我出错了,您的帮助将再次受到赞赏.干杯
Jim*_*ney 41
管理使用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;
Run Code Online (Sandbox Code Playgroud)
在头文件中,请导入
#import <AVFoundation/AVFoundation.h>
Run Code Online (Sandbox Code Playgroud)
它工作得很完美,我已经能够从viewDidLoad调用它,这比从viewDidAppear调用已弃用的thumbNailImageAtTime更快.
希望这可以帮助其他遇到同样问题的人.
requestThumbnailImagesAtTimes:timeOption:方法将在图像请求完成时发布MPMoviePlayerThumbnailImageRequestDidFinishNotification通知.您需要缩略图的代码应使用订阅此通知NSNotificationCenter,并在收到通知时使用该图像.