Ocultar indicador de actividad en el controlador del reproductor de películas
-
13-09-2020 - |
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?
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