當屏幕上播放視頻時,我的應用需要採取一些屏幕截圖。該視頻由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