在iOS 5.0+中获取捕获视频的第一帧

时间:2012-01-11 02:10:02

标签: ios video frame

我的应用曾经能够使用下面的代码获得第一个视频帧 - 适用于iOS 4.0+。但是,一旦我的设备升级到iOS 5.0.1,返回的图像始终为NULL。

+(UIImage *)fFirstVideoFrame:(NSString *)path
{
    MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] 
             initWithContentURL:[NSURL URLWithString:path]];
    UIImage *img = [mp thumbnailImageAtTime:0.0 
             timeOption:MPMovieTimeOptionNearestKeyFrame];
    [mp stop];
    [mp release];
    return img;
}

有谁知道如何在iOS 5.0+中获取视频帧?感谢。

1 个答案:

答案 0 :(得分:2)

这就是为什么(来自MPMoviePlayerController documentation):

  

iOS 4.3及更早版本中的行为

     

在iOS 4.3及更早版本中,一个新的电影播放器​​自动准备播放。从iOS 5.0开始,为了便于更精细的播放控制,新的电影播放器​​不会自动准备播放。请参阅initWithContentURL:实例方法的讨论。

讨论部分地说:

  

..要准备新的电影播放器​​进行播放,请调用prepareToPlay方法..

     

要在新电影播放器​​准备好播放时收到通知,请注册MPMoviePlayerLoadStateDidChangeNotification通知。然后,您可以通过访问loadState属性来检查加载状态。

电影准备好播放后,您可以从中请求缩略图。

相关问题