2011-10-01 77 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