riproduzione del video ma nessuna immagine - solo il suono?
-
02-10-2019 - |
Domanda
Modifica : se vi imbattete in questo e volete sapere come ho finalmente risolto ho rinunciato a quel codice qui sotto alla fine e fatto questo:
-(void)playMovieAtURL:(NSURL*)theURL{
mediaPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:theURL];
[self presentMoviePlayerViewControllerAnimated:mediaPlayer];
mediaPlayer.view.backgroundColor = [UIColor blackColor];
}
Original post:
Questo è il mio codice -. L'ho preso dal sito di Apple, quindi non dovrebbe essere un problema
Si corre in un UITableViewController sul metodo didSelectRowAtIndexPath.
Quando si seleziona la riga del video inizia a suonare - l'audio sarà almeno - ma non c'è immagine. Qualsiasi idea del perché questo è? Ho incluso il quadro.
Il video è uno fuori dal sito Web di Apple (un video FaceTime) che ho usato per il test.
-(void)playMovieAtURL:(NSURL*)theURL{
MPMoviePlayerController* theMovie =
[[MPMoviePlayerController alloc] initWithContentURL: theURL];
theMovie.scalingMode = MPMovieScalingModeAspectFill;
theMovie.controlStyle = MPMovieControlStyleNone;
// Register for the playback finished notification
[[NSNotificationCenter defaultCenter]
addObserver: self
selector: @selector(myMovieFinishedCallback:)
name: MPMoviePlayerPlaybackDidFinishNotification
object: theMovie];
// Movie playback is asynchronous, so this method returns immediately.
[theMovie play];
}
Soluzione
Il comportamento di MPMoviePlayerController cambiato in OS 3.2 - è necessario aggiungere esplicitamente vista del giocatore di film per la gerarchia di visualizzazione ora - usando qualcosa come:
[aView addSubview:moviePlayerController.view];
moviePlayerController.view.frame = aView.frame;
In alternativa è possibile utilizzare un MPMoviePlayerViewController (nuova in 3.2) per gestire la vista.
Se state rivolte a entrambe le pre- e post-3.2 dispositivi (ad esempio iOS 3.1 e 4.0), allora avrete bisogno di alcuni codice condizionale per determinare il sistema operativo il codice è in esecuzione su e gestire di conseguenza. Ho usato questo in progetti precedenti:
if ([moviePlayerController respondsToSelector:@selector(setFullscreen:animated:)]) {
// Running on OS 3.2 or above
// Code to add to a view here...
}