MPMovieController in verticale

Tanto per cambiare non sono il primo nè l’unico ad avere problemi con il movie player dell’SDK dell’iPhone. Volevo inserire la guida de “Il Poeta” all’interno dell’applicazione e ho pensato bene di creare un filmato in quicktime e di darlo in pasto al movie player di Apple.

Fin qui niente di strano.. c’è un componente che è MPMovieController che fa esattamente al caso mio. Gli passi un URL alla resource da mandare in play e il gioco è fatto. Peccato che il filmato parta in landscape, mentre il mio gioco ovviamente è in portrait!

Per una volta faccio il bravo ragazzo e vado a vedere l’elenco dei metodi del controller.. niente di interessante. Ravano nella documentazione online.. niente neanche lì. Google aiutami tu! E trovo che c’è un metodo setOrientation che non è documentato e che non c’è nemmeno nei file di include dell’SDK ma che c’è nell’implementazione della classe!! Grazie Apple per essere così pressapochista in tutto ciò che è tecnico. Un’altra tacca ed una nuova voce sul perchè non sopporto Apple, l’SDK di iPhone ed XCode.

Qui trovate il codice in questione, che ho riportato anche sotto nel caso la pagina dovesse sparire o che altro: http://stackoverflow.com/questions/1374558/mpmovieplayercontroller-in-portrait-mode

@interface MPMoviePlayerController (extend)
-(void)setOrientation:(int)orientation animated:(BOOL)value;
@end
 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieUR];
[moviePlayer setOrientation:UIDeviceOrientationPortrait animated:NO];
if (moviePlayer)
{
        [self.moviePlayer play];
}

*** Un addendum: non usate questa funzione per pubblicare sull’App Store. Viene considerata API privata e pertanto vi rifiuteranno l’applicazione! ***