我正在使用下面的代码从视频中抓取一个farme用作拇指指甲。这是按照需要工作的,但是我的MBProgressHUD仅在图像抓取完成后显示,在一秒钟内在屏幕上闪烁。我已经以相同的方式多次使用MBPRogressHUD,在代码的开头显示它并在完成其他所有操作后隐藏,这一直都有效,但这次它就像代码运行无序一样?任何帮助将不胜感激。
这是我按下按钮时调用的方法。
- (IBAction)grabImage:(id)sender {
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeIndeterminate;
hud.labelText = @"Grabing Thumbnail";
[hud show:YES];
self.imageholder.image = [self grabImageMethod];
[hud hide:YES];
}
这是在in。中调用的抓取方法。
-(UIImage*)grabImageMethod{
NSURL *vidURL = [NSURL URLWithString:@"http://myserver.com/myfile.mp4"];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:vidURL options:nil];
AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
NSError *err = NULL;
CMTime time = CMTimeMake(1, 60);
CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err];
NSLog(@"err==%@, imageRef==%@", err, imgRef);
return [[UIImage alloc] initWithCGImage:imgRef];
}
答案 0 :(得分:0)
在nielsbot的评论之后我去了并取代了
[hud show:YES];
self.imageholder.image = [self grabImageMethod];
[hud hide:YES];
与
[hud showAnimated:YES whileExecutingBlock:^{
self.imageholder.image = [self grabImageMethod];
}];
它现在完美无缺。