iPhone和iPad,通过视频播放截屏

时间:2011-10-01 20:26:20

标签: iphone ipad screenshot avplayer

我的应用需要在屏幕上播放视频时拍摄一些屏幕截图。该视频由AVPlayer和AVPlayerLayer播放。我尝试使用旧方法时的问题,例如:

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
CGRect rect = [keyWindow bounds];

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    UIGraphicsBeginImageContextWithOptions(rect.size, NO, [UIScreen mainScreen].scale);
else
    UIGraphicsBeginImageContext(rect.size);

CGContextRef context = UIGraphicsGetCurrentContext();
[keyWindow.layer renderInContext:context];   
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;

它返回一个屏幕图像和一个黑色区域(视频应该在那里)。我可以使用UIGetScreenImage()成功截取屏幕截图,但它是一个私有API,所以我不确定我是否可以使用它

2 个答案:

答案 0 :(得分:1)

据我所知,许多已发布的应用已使用UIGetScreenImage()。看起来苹果对它的使用相当宽松。也许你可以抓住机会......

答案 1 :(得分:0)

虽然已经过去了很多时间 - 但我想在iOS 7上使用UIView上的快照命令现在可以做到这一点:

https://developer.apple.com/library/ios/documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/instm/UIView/snapshotViewAfterScreenUpdates