Suivant / boutons Précédent sur iPhone MPMoviePlayerController
-
16-09-2019 - |
Question
Lorsque vous utilisez le MPMoviePlayerController, le bouton de lecture est entouré de boutons « Suivant » et « Précédent ».
Comment puis-je obtenir des notifications quand on clique dessus? est-il un moyen de nourrir MPMoviePlayerController une liste (tableau) de contenu?
La solution
Nathan est correct d'avoir besoin de mettre en œuvre votre propre interface utilisateur pour le joueur si vous souhaitez que les notifications de bouton. Vous pouvez recevoir des notifications du lecteur sur l'état de lecture bien.
de l'exemple AddMusic, où l'auto est le contrôleur ou le modèle contenant l'instance de MPMusicPlayerController:
- (void) registerForMediaPlayerNotifications {
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver: self
selector: @selector (handle_NowPlayingItemChanged:)
name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification
object: musicPlayer];
[notificationCenter addObserver: self
selector: @selector (handle_PlaybackStateChanged:)
name: MPMusicPlayerControllerPlaybackStateDidChangeNotification
object: musicPlayer];
/*
// This sample doesn't use libray change notifications; this code is here to show how
// it's done if you need it.
[notificationCenter addObserver: self
selector: @selector (handle_iPodLibraryChanged:)
name: MPMediaLibraryDidChangeNotification
object: musicPlayer];
[[MPMediaLibrary defaultMediaLibrary] beginGeneratingLibraryChangeNotifications];
*/
[musicPlayer beginGeneratingPlaybackNotifications];
}
Autres conseils
Aucune notification sont générés lorsque l'utilisateur appuie sur les boutons suivant / précédent (vous devez déposer un bogue à ce sujet), la seule façon de résoudre cela sans aucune vue-crawling est de mettre en œuvre votre propre point de vue de superposition vidéo non approuvée:
MPMoviePlayerController* moviePlayer = [[MPMoviePlayerController alloc]
initWithContentURL:someUrl];
moviePlayer.movieControlMode = MPMovieControlModeHidden;
[moviePlayer play];
NSArray* windows = [[UIApplication sharedApplication] windows];
if ([windows count] > 1) {
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
[moviePlayerWindow addSubview:yourCustomOverlayView];
}
Pas idéal, mais les commandes standard sont assez faciles à réimplémenter.
Je ne pense pas que vous avez beaucoup de contrôle sur la MPMoviePlayerController
. Il est un composant standard qui peut en principe démarrer et arrêter la lecture d'un film et rien d'autre.