Comment savoir quand le playControllerBar de movieplayer sera rejeter?
-
01-10-2019 - |
Question
comme le titre, quand je joue film à l'aide movieplayer Je veux savoir quand le playControllerBar sera destituer, afin que je puisse contrôler mon avis ajouté à movieplayer. Est-ce que quelqu'un sait? Dites-moi, merci.
La solution
Je ne suis pas sûr à 100% si je vous comprends bien. Je suppose que ce que vous voulez faire est:
- lire un film
- ajouter une vue personnalisée (superposition) au-dessus de la (course) film.
en supposant ce que je viens d'écrire en bas, je pense que vous devez considérer les choses suivantes:
-
ajouter une superposition personnalisée au-dessus de
MPMoviePlayerViewController
est (pour autant que je suis concerné) a permis / possible si les commandes du lecteur standard sont réglés sans pareil:[moviePlayerViewController.moviePlayer setControlStyle:MPMovieControlStyleNone];
-
ajouter votre superposition personnalisée au-dessus du joueur est fondamentalement la même procédure de
addSubview
que sur tout autre point de vue[moviePlayerViewController.view addSubview:overlay];
le code ci-dessus / concept fonctionnera sur 3.2 et plus tard, comme je l'ai lu tout à l'heure que vous développez évidemment pour 3.0
plutôt que de supprimer la première partie de ma réponse, je vais maintenant vous expliquer comment obtenir le même effet sur 3,0
3.0, il est un peu plus compliqué (comme vous le savez que maintenant). MPMoviePlayerController n'est pas une vue du contrôleur et fonctionne uniquement en mode plein écran. Une fois que le film commence à jouer, le keyWindow change ! Nous faisons donc l'utilisation de cette mise en œuvre par ce qui suit:
1) au sein de votre classe qui encapsule le MPMoviePlayerController, commencer à écouter la UIWindowDidBecomeKeyNotification
en procédant comme suit:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(keyWindowChanged:)
name: UIWindowDidBecomeKeyNotification
object: nil];
2) withing votre keyWindowChanged:
Méthode vous pouvez ajouter votre superposition, la snipplet suivante est exactement comment j'implémenté:
- (void)keyWindowChanged: (id) sender {
//NSLog(@"keyWindowChanged");
[[NSNotificationCenter defaultCenter] removeObserver: self name: UIWindowDidBecomeKeyNotification object: nil];
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
[moviePlayerWindow addSubview: overlayController.view];
[overlayController performSelector:@selector(fadeIn)];
}
encore une fois, cela ne fonctionne que si le MovieControllMode
est en faisant « caché » que:
[newMPController setMovieControlMode: MPMovieControlModeHidden];
J'espère que je pourrais aider.