Моему приложению нужно сделать снимок экрана, когда на экране воспроизводится видео. Видео воспроизводится AVPlayer и AVPlayerLayer. Проблема при попытке использовать старые методы, такие как:
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, поэтому я не уверен, смогу ли я его использовать или нет