Pregunta

Como usted sabe, cuando toco la película con MPMOVIEPLAYERCONTROLERS, el MoviePlayer debe mostrar unIctingIndicatorView en el centro de la Visión de MoviePlayer.Ahora, he puesto una actividad de actividad personalizada en mi programa, solo quiero esconderme o eliminar elIncuryIndicatorView de MPmoviePlayController, ¿puedo hacer eso?

¿Fue útil?

Solución

¡Sí podemos!

Supongo que lo que quiere hacer es mostrar el iDicador de actividades mientras su película se está cargando, no mientras se está reproduciendo? Sólo asumo eso y sigo adelante ...

En SDK 3.2 y superior, todo el MPmoviePlayController (y MPmoviePlayVIRVIEWController) es mucho mejor que en versiones anteriores. Si aún usa MPmoviePlayController, puede considerar cambiar a MPmoviePlayerviewController (que es básicamente una subclase de UIVIE que encapsula un objeto MPmoviePlayController).

De todos modos, para mostrar y ocultar su vista de UIACTONYIndicatori, le recomendaría que se conecte a las notificaciones que se envían desde su MPmoviePlayController cuando el cambio de carga o PlayStatus.

Algunos de estos son:

MPMoviePlayerPlaybackStateDidChangeNotification
MPMoviePlayerLoadStateDidChangeNotification 

para que se enganche a esos eventos haciendo esto:

[[NSNotificationCenter defaultCenter] addObserver: self 
                                             selector: @selector(loadStateChanged:) 
                                                 name: MPMoviePlayerLoadStateDidChangeNotification 
                                               object: moviePlayerViewController.moviePlayer];

y este

[[NSNotificationCenter defaultCenter] addObserver: self 
                                             selector: @selector(playBackStateChanged:) 
                                                 name: MPMoviePlayerPlaybackStateDidChangeNotification 
                                               object: moviePlayerViewController.moviePlayer];

y dentro de sus manipuladores (playBackStateChanged y loadStateChanged)

Puedes hacer algo así:

-(void)playBackStateChanged:(id)sender
{
    MPMoviePlaybackState playbackState = [moviePlayerViewController.moviePlayer playbackState];

    switch (playbackState) {

        case MPMoviePlaybackStateStopped :


            break;

        case MPMoviePlaybackStatePlaying :
            [yourActivityIndicatorView stopAnimating];
            break;

        case MPMoviePlaybackStateInterrupted :
            [yourActivityIndicatorView startAnimating];
            break;
    }
}

Asegúrese de que la propiedad "Hideshwhandopped" (o similar) de su indicador se establece en SÍ (si hace eso, no tiene que preocuparse por ocultar y no infundir el control.

El resto es simple, solo agregue su actividad de actividadIndicatorView ONTOP de la vista de Controlador de MPMovieviewView.

Espero poder ayudar a la sociedad Saludos
SAM

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