2015-11-20 2 views
1

J'ai mis en œuvre l'annonce vidéo Preroll d'iAd et je veux garantir que mon utilisateur regardera toute la publicité. Comment puis-je masquer la barre de contrôle de AVPlayerViewController afin que l'utilisateur ne puisse pas appuyer sur "Terminé" et sortir de la vidéo avant qu'elle ne se termine?Comment masquer la barre de contrôle AVPlayerViewController?

self.canDisplayBannerAds = YES; 
[AVPlayerViewController preparePrerollAds]; 
player = [[AVPlayerViewController alloc] init]; 
player.showsPlaybackControls = NO; 
player.delegate = self; 
+0

Je pense que (ne pas essayer) cela est impossible OOTB. Votre utilisateur serait bloqué et ne pourrait pas annuler le tout (par exemple regarder une vidéo). Ce n'est pas considéré comme bon UX, IMHO –

Répondre

1

Vous pouvez utiliser ce code pour faire la même chose. Vous devez appeler play lorsque vous présentez le contrôleur.

playerItem = [[AVPlayerItem alloc] initWithURL:url]; 
if(playerItem) { 
    player = [[AVPlayer alloc] initWithPlayerItem:playerItem]; 
    playerViewController = [[AVPlayerViewController alloc] init]; 
    playerViewController.player = _player; 
    [playerViewController setShowsPlaybackControls:NO]; 
    [parentViewController presentViewController:playerViewController animated:YES completion:^{ 
    [playerViewController.player play]; 
}]; 
+0

Serait-ce pas encore afficher la barre de navigation? L'OP veut que l'utilisateur soit incapable de fermer le viewController, si je comprends bien ... –

0

Code simple

// create an AVPlayer 
AVPlayer *player = [AVPlayer playerWithURL:videoURL]; 

// create a player view controller 
AVPlayerViewController *controller = [[AVPlayerViewController alloc]init]; 
controller.player = player; 
controller.showsPlaybackControls = FALSE;