Credo che il problema è quando si aggiunge la vista AVPlayerViewController alla vista sullo schermo che occupa tutto lo schermo, si tratta come già in modalità a schermo intero. Il trucco è di aggiungerlo a una vista che occupa una porzione più piccola dello schermo.
Inizialmente ho fatto questo:
// Setup an AVPlayerViewController
self.avPlayerViewController = [[AVPlayerViewController alloc] init];
if ([self.avPlayerViewController respondsToSelector:@selector(allowsPictureInPicturePlayback)]) {
self.avPlayerViewController.allowsPictureInPicturePlayback = NO;
}
// Attach the Active Cloack AVPlayer to the AVPlayerViewController
AVPlayer *player = self.avPlayer;
self.avPlayerViewController.player = player;
self.avPlayerViewController.view.frame = self.view.bounds;
[self.view addSubview:self.avPlayerViewController.view];
// Setup the Parent Child relationshipo
[self addChildViewController:self.avPlayerViewController];
[self.avPlayerViewController willMoveToParentViewController:self];
[self.avPlayerViewController didMoveToParentViewController:self];
Tuttavia, poi ho avuto lo stesso problema che il mio giocatore non ha avuto un pulsante Fine, quindi non ho potuto uscire dal video.
Ho quindi modificato il mio xib/storyboard e ho aggiunto una UINavigationBar in alto con un pulsante done e un UIView come contenitore sotto questo. Ho quindi aggiunto avPlayerViewController a questa vista contenitore e i controlli sono stati trasformati magicamente in una modalità non a schermo intero. Ho ottenuto un pulsante a schermo intero per portare il lettore in modalità a schermo intero.
Tuttavia Poi ho dovuto creare il codice per l'auto nascondere la mia barra di navigazione e aggiungere un pulsante fatto per questo e un titolo ecc ...
come hai gestito questo? fatto pulsante personalizzato fatto? @dev –
@Fyza, invece di pushViewController ho chiamato presentViewController come spiegato da pck456 sotto – dev
Prova questa [soluzione] (http://stackoverflow.com/a/41281453/4593553) funziona per me! – Jerome