Pregunta

Editar : si se encuentra con esto y quiere saber cómo finalmente lo resolví me di por vencido en ese código de abajo con el tiempo e hice esto:

-(void)playMovieAtURL:(NSURL*)theURL{
    mediaPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:theURL];

    [self presentMoviePlayerViewControllerAnimated:mediaPlayer];
    mediaPlayer.view.backgroundColor = [UIColor blackColor];

}

Original post:

Este es mi código -. Me quité el sitio de Apple por lo que no debería ser un problema

Se ejecuta en un UITableViewController en el método didSelectRowAtIndexPath.

Cuando se selecciona la fila del vídeo comienza a reproducirse - el sonido sale por menos - pero no hay imagen. Cualquier idea de por qué es esto? He incluido el marco.

El video es uno de la página web de Apple (un video FaceTime) que he usado para la prueba.

 -(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];

    }
¿Fue útil?

Solución

El comportamiento de MPMoviePlayerController cambió en OS 3.2 - es necesario agregar explícitamente vista del jugador película a su jerarquía de vistas ahora - usando algo como:

[aView addSubview:moviePlayerController.view];
moviePlayerController.view.frame = aView.frame;

Como alternativa se puede utilizar un MPMoviePlayerViewController (nuevo en 3.2) para gestionar la vista.

Si se apuntan a los dos-3,2 colocar dispositivos pre y (por ejemplo, iOS 3.1 y 4.0), entonces tendrá un código condicional para determinar el sistema operativo se ejecuta el código de manejar y en consecuencia. He utilizado este en proyectos anteriores:

if ([moviePlayerController respondsToSelector:@selector(setFullscreen:animated:)]) {
    // Running on OS 3.2 or above
    // Code to add to a view here...
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top