2016-01-13 7 views
1

J'ai réussi à détecter le clic sur le bouton précédent/suivant en suivant le code, mais je n'ai toujours pas trouvé le moyen de distinguer les deux clics.MPMoviePlayerController - Détecter et différencier les boutons Précédent/Suivant

dans @implementation MyMovieController: MPMoviePlayerController

[[NSNotificationCenter defaultCenter] 
    addObserver:self selector:@selector(movieChangeCallBack:) 
    name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil]; 

et définir - (void) movieChangeCallBack: (NSNotification *) aNotification

- (void)movieChangeCallBack:(NSNotification*) aNotification { 

    if (self.playbackState == MPMoviePlaybackStateStopped) 
    { 
     //Touched 'Previous' or 'Next' button. 
    } 
} 

Est-il possible de dire si le ' bouton précédent ou suivant est cliqué? Merci :)

Répondre

1

Malheureusement, MPMoviePlayerController déclenche, par défaut, MPMoviePlayerPlaybackStateDidChangeNotification lorsque vous appuyez sur Prev ou Next. Il n'y a aucun moyen d'être notifié si chacun est engagé.

La seule manière que je trouvais, était de créer mes propres contrôles personnalisés pour en arrière et en avant, en ajoutant une cible pour effectuer une action:

[prevBtn addTarget:self action:@selector(onClick:) 
forControlEvents:UIControlEventTouchUpInside]; 

[nextBtn addTarget:self action:@selector(onClick:) 
forControlEvents:UIControlEventTouchUpInside]; 

Ensuite, dans votre méthode onClick:

(void)onClick:(UIButton*)sender 
{ 
    if (sender == prevBtn) 
    { 
     // Do whatever when prevBtn is tapped 
    } 
    else if (sender == nextBtn) 
    { 
     // Do whatever when nextBtn is tapped 
    }  
} 

FYI: vous devez définir la propriété controlStyle du lecteur sur MPMovieControlStyleNon pour masquer les contrôles par défaut.

+0

Merci :) Je vais essayer! – veslam

0

MPMoviePlayerController/MPMoviePlayerPlaybackStateDidChangeNotification NS_DEPRECATED_IOS (3_2, 9_0) est obsolète. Vous devriez passer à AVPlayer.