我的应用曾经能够使用下面的代码获得第一个视频帧 - 适用于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+中获取视频帧?感谢。
答案 0 :(得分:2)
这就是为什么(来自MPMoviePlayerController
documentation):
iOS 4.3及更早版本中的行为
在iOS 4.3及更早版本中,一个新的电影播放器自动准备播放。从iOS 5.0开始,为了便于更精细的播放控制,新的电影播放器不会自动准备播放。请参阅
initWithContentURL:
实例方法的讨论。
讨论部分地说:
..要准备新的电影播放器进行播放,请调用
prepareToPlay
方法..要在新电影播放器准备好播放时收到通知,请注册
MPMoviePlayerLoadStateDidChangeNotification
通知。然后,您可以通过访问loadState
属性来检查加载状态。
电影准备好播放后,您可以从中请求缩略图。