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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top