如何获得包含播放AVPlayer视图的屏幕截图?始终获得AVPlayer的黑色视图

时间:2017-06-22 03:10:08

标签: ios cocoa-touch avplayer

我的应用需要获取当前窗口的屏幕截图。但是当当前屏幕包含播放AVPlayer时,屏幕截图中的AVPlayer视图显示黑色视图。它总是发生在真实的设备而不是模拟器。这是非常糟糕的经历。

CGContextSaveGState(
CGContextTranslateCTM(context, [window center].x, [window center].y);  
CGContextConcatCTM(context, [window transform]);  
CGContextTranslateCTM(context, -[window bounds].size.width * [[window layer] anchorPoint].x, -[window bounds].size.height * [[window layer] anchorPoint].y);  
if (orientation == UIInterfaceOrientationLandscapeLeft)  
{  
    CGContextRotateCTM(context, M_PI_2);  
    CGContextTranslateCTM(context, 0, -imageSize.width);  
}  
else if (orientation == UIInterfaceOrientationLandscapeRight)  
{  
    CGContextRotateCTM(context, -M_PI_2);  
    CGContextTranslateCTM(context, -imageSize.height, 0);  
} else if (orientation == UIInterfaceOrientationPortraitUpsideDown) {  
    CGContextRotateCTM(context, M_PI);  
    CGContextTranslateCTM(context, -imageSize.width, -imageSize.height);  
}  
if ([window respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)])  
{  
    [window drawViewHierarchyInRect:window.bounds afterScreenUpdates:YES];  
}  
else  
{  
    [window.layer renderInContext:context];  
}  
CGContextRestoreGState(context);

0 个答案:

没有答案