Question

Comme vous le savez,quand je joue film avec MPmoviePlayerController ,le moviePlayer devrait montrer une activityIndicatorView dans le centre de la moviePlayer'view.Maintenant,j'ai mis une coutume activityIndicatorView dans mon programme,je veux juste cacher ou supprimer le activityIndicatorView de MPMoviePlayController,puis-je le faire ?

Était-ce utile?

La solution

oui, nous pouvons!

Je suppose que ce que vous voulez faire est de montrer l'activité idicator alors que le film est en cours de chargement, pas alors qu'il est en train d'être joué?Je viens de supposer que, et continuer...

dans le SDK 3.2 et au-dessus, l'ensemble de la MPMoviePlayerController (et MPMoviePlayerViewController) sont beaucoup mieux que sur les versions précédentes.Si vous êtes toujours à l'aide de MPMoviePlayerController vous pourriez envisager de passer à MPMoviePlayerViewController (qui est en fait une sous-classe UIView que encapsules un MPMoviePlayerController Objet).

de toute façon, de montrer et de cacher votre UIActivityindicator vue, je vous recommande de vous brancher sur les notifications qui sont envoyés à partir de votre MPMoviePlayerController lorsque la charge - ou playstatus changement.

quelques-uns de ces sont:

MPMoviePlayerPlaybackStateDidChangeNotification
MPMoviePlayerLoadStateDidChangeNotification 

si vous vous accrochez à ces événements pour ce faire:

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

et ce

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

et à l'intérieur de vos gestionnairesplayBackStateChanged et loadStateChanged)

vous pouvez faire quelque chose comme ceci:

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

    switch (playbackState) {

        case MPMoviePlaybackStateStopped :


            break;

        case MPMoviePlaybackStatePlaying :
            [yourActivityIndicatorView stopAnimating];
            break;

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

assurez-vous que le "hidesWhenStopped" (ou similaire) propriété de votre IndicatorView est réglé sur oui (si vous le faites, vous n'avez pas de soins sur le masquage et le démasquage le contrôle.

le reste est simple, il suffit d'ajouter votre activityIndicatorView ontop de votre MPMovieViewController de vue.

j'espère que je pourrais aider
cheers
sam

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top