MPMoviePlayerController jugar por segunda vez el vídeo
-
19-09-2019 - |
Pregunta
Es necesario tener la posibilidad de jugar más de un vídeo en una aplicación.
Por desgracia, la segunda vez que presiona el juego, el vídeo aparece destellando.
Yo uso solamente el código para jugar vide
NSURL * url = [[[NSURL alloc] initFileURLWithPath: [[NSBundle mainBundle] pathForResource: @ "Película" OfType: @ "M4V"]] autorelease];
MPMoviePlayerController * pf = [[MPMoviePlayerController alloc] initWithContentURL: url];
mp.movieControlMode = MPMovieControlModeDefault;
[play mp];
MoviePlayer = mp;
[liberación mp];
Puede alguien decirme donde puede ser el problema? Gracias de antemano!
ACTUALIZACIÓN 1: Parece que el de Apple MoviePlayer ejemplo tiene el mismo problema.
Solución
También puede hacerlo ajustando el tiempo de reproducción inicial a -1.0 antes de llamar a la función de reproducción
mp.initialPlaybackTime = -1.0;
Pon este código antes de llamar ur método de reproducción.
Otros consejos
he tenido este problema y lo resolvió mediante el uso del sistema de notificación para ejecutar una devolución de llamada después de la MPMoviePlayerController termina, y la liberación del objeto jugador de allí.
Añadir una notificación antes de jugar la película:
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];
A continuación, añadir el método de devolución de llamada,
-(void)myMovieFinished:(NSNotification*)aNotification
{
MPMoviePlayerController *moviePlayer = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidFinishNotification object:moviePlayer];
[moviePlayer release];
}
Se costuras que la única solución es ... para que la aplicación de 3.1
También me parece funcionar con el sistema operativo 3.1 o versión posterior del simulador se puede jugar well.It no aparece blinking.But cuando agrego
initialPlaybackTime = -1.0
También jugará también en OS 3.0.