当屏幕上播放视频时,我的应用需要采取一些屏幕截图。该视频由AVPlayer和AVPlayerLayer播放。这个问题时,我尝试使用老方法,如:iPhone和iPad,带视频播放截图
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,因此我不确定我是否可以使用它。
截至目前为止,2012年5月,这个API是私有的!所以不要浪费你的时间!苹果会拒绝它! – deimus