2011-10-01 181 views
2

当屏幕上播放视频时,我的应用需要采取一些屏幕截图。该视频由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,因此我不确定我是否可以使用它。

回答

1

从我读过的内容中,很多已发布的应用程序已使用UIGetScreenImage()。看起来苹果对它的使用非常宽松。也许,虽然大量的时间已经过去了,你可以采取一个机会......

+0

截至目前为止,2012年5月,这个API是私有的!所以不要浪费你的时间!苹果会拒绝它! – deimus