显示缩略图UIImageView

问题描述 投票:3回答:2

在请求生成我的缩略图之后,我将如何在UIImageView中显示它?

 NSURL *videoURL = [NSURL URLWithString:_videoPathString] ;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[moviePlayer requestThumbnailImagesAtTimes:[NSArray arrayWithObject:[NSNumber numberWithFloat:2.0f]] timeOption:MPMovieTimeOptionExact];

有任何想法吗?

ios objective-c uitableview mpmovieplayer
2个回答
6
投票

当图像请求完成时,requestThumbnailImagesAtTimes:timeOption:方法将发布MPMoviePlayerThumbnailImageRequestDidFinishNotification通知。

您需要缩略图的代码应使用NSNotificationCenter订阅此通知,并在收到通知时使用该图像。

例。

首先注册MPMoviePlayerThumbnailImageRequestDidFinishNotification通知:

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

然后请求缩略图:

[movie requestThumbnailImagesAtTimes:YOUR_TIMES timeOption:MPMovieTimeOptionExact];

然后得到图像:

-(void)handleThumbnailImageRequestFinishNotification:(NSNotification*)notification
{
    NSDictionary *userInfo = [notification userInfo];
    UIImage *image = [userInfo valueForKey:MPMoviePlayerThumbnailImageKey];
}

资料来源:MPMoviePlayerController Class Reference


0
投票

在方法的文档中非常清楚地提到:

此方法单独和异步处理每个缩略图请求。当单个图像的结果到达时,电影播放器​​会发布MPMoviePlayerThumbnailImageRequestDidFinishNotification通知以及该图像的结果。无论图像捕获成功还是失败,都会发布通知。您应该在调用此方法之前注册此通知。

要注册通知,请参阅this

© www.soinside.com 2019 - 2024. All rights reserved.