Domanda

Il mio iPad visualizza una schermata piena filmato utilizzando il comodo di classe MPMoviePlayerViewController. Mi presento in questo modo:

 [self.hostController presentMoviePlayerViewControllerAnimated:playerViewController];

E più tardi, quando ha comunicato che il gioco è fatto, mi respingere in questo modo:

 [self.hostController dismissMoviePlayerViewControllerAnimated];

Funziona bene, tranne quando l'utente ruota l'iPad durante la riproduzione di film:

1- L'iPad è in posizione verticale. La mia opinione è verticale. 2- L'utente inizia il film in orientamento verticale. Il giocatore è verticale. 3- L'utente ruota l'iPad per l'orientamento orizzontale. 4- Il giocatore passa al suo orientamento orizzontale. Fin qui tutto bene. 5- Il film si interrompe, il giocatore è respinto, i miei riappare, l'iPad è ancora orizzontali, ma la mia opinione è rimasto con l'orientamento verticale è quella del passaggio 1. Ora guarda lateralmente.

Naturalmente, se l'utente poi ruotare l'iPad, è tornato alla normalità. La mia opinione quindi ruota normalmente durante la rotazione del iPad.

Qualcuno ha mai incontrare questo? Una soluzione semplice?

Grazie.

È stato utile?

Soluzione

Ho incontrato questo numerose volte e sembra essere un bug di Apple (e hanno riportato come tale).

L'unico modo (che ho trovato) intorno a questo è quello di ascoltare le notifiche UIDeviceOrientationDidChangeNotification e UIApplicationDidChangeStatusBarOrientationNotification. Utilizzare il timestamp relativo su tali notifiche; se entrambi verificano entro un secondo l'uno dall'altro, è possibile essere sicuri che il cambiamento barra di stato è il risultato del cambio utente orientamenti e non i Media SDK cambiare l'orientamento barra di stato. Poi, quando il film è finito, si può dire al vostro controller della vista che dovrebbe ruotare al paesaggio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top