Печать содержимого UIView в UIImage работает в симуляторе, но не в устройстве

Я пишу приложение IOS, и я хочу создать точную копию видеопроигрывателя и отобразить этот двойник чуть ниже. Пользователь не сможет взаимодействовать с этим двойником, поскольку это просто отражение.

Для этого я успешно показывал видео (MPMoviePlayerController) в UIViewer, и я пытаюсь скопировать содержимое атрибута вида проигрывателя в UIImage чуть ниже.

Вот мой код:

@interface ViewController () @property (strong, nonatomic) MPMoviePlayerController *player; @property (strong, nonatomic) UIImageView *imageView; - (UIImage *)screenCapture:(UIView *)view; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSURL *url = [NSURL URLWithString:@"http://xxx.xxx.xx.xx/serenity.mp4"]; MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url]; self.player = player; player.view.frame = CGRectMake(0, 0, 320, 200); [self.view addSubview:player.view]; [self.view bringSubviewToFront:player.view]; [player prepareToPlay]; CGRect rect = CGRectMake(0, 310, 320, 200); _imageView = [[UIImageView alloc]initWithFrame:rect]; [self.view addSubview:_imageView]; NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.03 target:self selector:@selector(repeateMethod:) userInfo:nil repeats:YES]; // repeateMethod calls the snapshot every 0.03 second } - (void)repeateMethod:(NSTimer *)timer { _imageView.image = [self screenCapture:_player.view]; } - (UIImage *)screenCapture:(UIView *)view { UIImage *capture; [view snapshotViewAfterScreenUpdates: NO]; UIGraphicsBeginImageContextWithOptions(view.frame.size , NO , 2.0 ); if ([view respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)]) { [view drawViewHierarchyInRect:view.frame afterScreenUpdates:NO]; } else { [view.layer renderInContext:UIGraphicsGetCurrentContext()]; } capture = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return capture; } @end 

Этот код отлично работает на симуляторе, который дает следующий результат:

View post on imgur.com

Вы можете видеть, что у меня есть точно ожидаемое поведение: клон видео, который обновляется каждые 0,03 секунды.

Но когда я играю это на своем устройстве iPhone, я получаю следующее:

http://i.stack.imgur.com/6tSZQ.png

Как вы можете видеть, отображаются только контроллеры, но содержание видео полностью отсутствует! Я не понимаю, почему, так как он хорошо работает в симуляторе … Как бы вы объяснили эту ошибку? Считаете ли вы, что это связано с политикой Apple в качестве предотвращения копирования видеоконтента? Заранее спасибо !

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.