我的应用需要在屏幕上播放视频时拍摄一些屏幕截图。该视频由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,所以我不确定我是否可以使用它
答案 0 :(得分:1)
据我所知,许多已发布的应用已使用UIGetScreenImage()
。看起来苹果对它的使用相当宽松。也许你可以抓住机会......
答案 1 :(得分:0)
虽然已经过去了很多时间 - 但我想在iOS 7上使用UIView上的快照命令现在可以做到这一点: