MPMoviePlayerController jouer deuxième fois vidéo
-
19-09-2019 - |
Question
Je dois avoir la possibilité de jouer plus d'une vidéo dans une application.
Malheureusement, la deuxième fois que je presse le jeu, la vidéo apparaît en clignotant.
Je n'utilise que ce code pour jouer vide
* NSURL url = [[[NSURL alloc] initFileURLWithPath: [[NSBundle mainBundle] pathForResource: @ "Film" ofType: @ "m4v"]] autorelease];
MPMoviePlayerController * F = [[MPMoviePlayerController alloc] initWithContentURL: url];
mp.movieControlMode = MPMovieControlModeDefault;
[Lecture mp];
MoviePlayer = point de fusion;
[libération mp];
Quelqu'un peut-il me dire où peut être le problème? Merci d'avance!
Mise à jour 1: Il semble que Apple MoviePlayer exemple a le même problème.
La solution
vous pouvez aussi le faire en réglant le temps de lecture initiale à -1,0 avant d'appeler la fonction de lecture
mp.initialPlaybackTime = -1.0;
Mettre ce code avant ur méthode de jeu est appelé.
Autres conseils
J'ai eu ce problème et résolu en utilisant le système de notification pour exécuter un rappel après la fin de la lecture MPMoviePlayerController, et libérer l'objet de joueur il.
Ajouter une notification avant de jouer le film:
NSURL *url = [[[NSURL alloc]initFileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Movie" ofType:@"m4v"]] autorelease];
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc]initWithContentURL:url];
mp.movieControlMode = MPMovieControlModeDefault;
//***Add this line***
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:mp];
[mp play];
Ensuite, ajoutez la méthode de rappel,
-(void)myMovieFinished:(NSNotification*)aNotification
{
MPMoviePlayerController *moviePlayer = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidFinishNotification object:moviePlayer];
[moviePlayer release];
}
Il coud que la seule solution est ... de faire l'application pour 3.1
Je trouve aussi fonctionner sur le système d'exploitation 3.1 ou version ultérieure du simulateur peut être joué well.It ne semble blinking.But quand j'ajoute
initialPlaybackTime = -1.0
il sera également bien jouer sur OS 3.0.