Masquer la Barre d'état de MPMoviePlayerController
J'ai été aux prises avec un très ennuyeux problème tout au long de la journée et j'espère que je pourrais trouver de l'aide sur ce forum.
Je suis en utilisant un MPMoviePlayerController pour lire un film en plein écran sur l'iPad et je ne peux pas comprendre comment faire pour supprimer la barre d'état qui est toujours affiché en dépit de tous mes efforts pour le faire aller en enfer.
Voici le code de la méthode que j'utilise pour afficher le film :
-(void)launchVideoFromButton:(id)sender{
NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"movie01" ofType:@"m4v"];
NSURL *videoPathURL = [NSURL fileURLWithPath:videoPath];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoPathURL];
[self.view addSubview:moviePlayer.view];
moviePlayer.shouldAutoplay = YES;
moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[moviePlayer setFullscreen:YES animated:YES];
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver:self selector:@selector(moviePlayerEvent:) name:MPMoviePlayerLoadStateDidChangeNotification object:moviePlayer];
}
-(void)moviePlayerEvent:(NSNotification*)aNotification{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];
NSLog(@"%i", [UIApplication sharedApplication].statusBarHidden);
}
Dans la console, je peux voir que moviePlayerEvent est déclenché lorsque le film apparaît, mais la barre est toujours là : [[UIApplication sharedApplication] setStatusBarHidden:OUI withAnimation:N] semble être inoperant. J'ai essayé d'utiliser les autres MPMoviePlayerController notifications avec pas de chance.
Quelqu'un pourrait-il m'aider sur ce coup?
Merci d'avance.
OriginalL'auteur SetBlue | 2010-09-06
Vous devez vous connecter pour publier un commentaire.
Malheureusement, après l'exécution dans ce problème, à travers la recherche et beaucoup d'expérimentation, j'ai déterminé qu'il est quasiment impossible de garder l'iOS barre d'état caché en mode plein écran. Peu importe ce que vous faites, quand la totalité de l'écran de commandes du lecteur sont présentés, ainsi que la barre d'état (il ne sera pas respecter les
setStatusBarHidden:YES
). Ce n'est pas le cas avec le lecteur intégré des contrôles, mais l'utilisateur peut facilement basculer entre les intégrés et les modes plein écran, de sorte que vous ne pouvez pas vraiment l'utiliser pour maintenir pas de barre d'état lorsque les contrôles sont affichés.Bien sûr, au moins, la barre d'état disparaît lorsque le contrôle fade out...
Tellement stupide, j'ai un vide de la barre d'état et je ne peux pas m'en débarrasser.
OriginalL'auteur rcw3
N'ajoutez pas le film du joueur en vue de votre vue principale; au lieu de cela, le présent de l'acteur de cinéma modal comme suit (certaines étapes omis par souci de concision et la clarté):
OriginalL'auteur Massimo Cafaro
Il a travaillé pour moi d'utiliser MPMoviePlayerViewController,
place
avant cette:
et le droit après:
juste au cas où, j'ai aussi fait:
Donc, pas de barres de statut, pas de contrôles... rien, mais seulement une pure vidéo. )
(Testé sur un appareil iOS 5.1 et 6.0 simulateur).
J'ai aussi pour arrêter la vidéo manuellement [moviePlayerController.moviePlayer stop]; après avoir écarté le film contrôleur également manuellement, sinon j'ai soit un écran noir à gauche ou à son de la vidéo joue en arrière-plan lorsque le contrôleur est déjà disparu. Donc, assez "drôle" le comportement de l'iOS. Le moment comment puis-je reprendre la vidéo "finira" est décrit ici: stackoverflow.com/a/13318267/691660. Bonne chance à nous tous! )
OriginalL'auteur Agat
La barre d'état n'a caché, mais en montrant de nouveau avec le contrôle de lecture.
OriginalL'auteur Jing
À l'aide de MPMovieControlModeVolumeHidden n'a pas fonctionné pour moi, la seule qui a fonctionné a été MPMovieControlModeVolumeOnly avec la vidéo en plein écran:
Et aussi, je suis en ajoutant le film d'afficher un sous-vue à la vue parent:
Mon application est supposé ne pas avoir de barre d'état et pour assurer la compatibilité ascendante j'utilise le code suivant sur l'app délégué:
OriginalL'auteur Juan de la Torre
ce n'est pas une réponse, je vais avoir le même problème. Il y en a un, je peux mettre à jour cependant..
La barre d'état affiche uniquement lorsque les commandes show.
Cliquant sur le film, se cache le conrols & la barre d'état, cliquez de nouveau, montre les contrôles, et la barre d'état revient trop.
Je suis également masquer la barre d'état par programme juste avant que je lance le film.
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];
et voici comment je suis ajoutant le film:
[[[UIApplication sharedApplication] keyWindow] addSubview: movieView];
OriginalL'auteur nycynik
Pour ceux qui ont été en cours d'exécution sur cette question, j'ai trouvé une solution à mon propre qui pourrait vous aider. Il ne s'applique que si le reste de votre application n'affiche pas la barre de statut et, si vous essayez de le cacher de nouveau une fois que le film est terminé et le retour à votre interface, au lieu de cours de la lecture.
Si votre MPMoviePlayerController est ajouté en tant que sous-vue d'une UIView qui est poussé sur une manette de navigation affichage de la pile, vous pouvez l'utiliser de la vue parente du contrôleur de viewWillDisappear méthode pour vous aider.
Dans cette méthode, vous pouvez changer le style de contrôle à aucun, ce qui effacera toutes et tous les contrôles de lecteur vidéo avant le point de vue disparaît et efface la barre d'état, ainsi si vous avez déjà mis à caché. Ce sera totalement inapparente à l'utilisateur que la vue se déplace hors de l'écran, et ils ne sont plus en interaction avec elle.
OriginalL'auteur Jose Rafael Santiago Jr.
J'ai eu le même problème, mais j'ai ajouté à mon
info.plist
ligneStatus bar is initially hidden - Boolean - YES
et ça marche!!!BTW, je suis en utilisant l'iOS 5.1, Xcode 4.3.2.
J'ai
Status bar is initially hidden
ensemble deYES
(OpenGL ES app), mais la barre d'état s'affiche lorsque je présente unMPMoviePlayerController
modal.J'ai la barre de Statut cachés définie sur OUI ainsi et je reçois toujours une barre d'état. La réponse par rcw3 est correct, si vous utilisez le mode plein écran, vous ne pouvez pas masquer la barre d'état.
OriginalL'auteur martin
Je ne sais pas si ma solution s'applique à votre problème, mais il fonctionne pour mon installation, c'est à dire 4th gen ipod sous iOS 5.1.
Mes applications ne pas afficher la barre d'état du tout, et dans l'info.fichier plist l'entrée correspondante "barre d'État est d'abord caché" est réglé sur OUI.
J'ai également ajouter directement le MPMoviePlayerController vue de sa vue parent. Voici le code pour l'installation de l'acteur de cinéma:
La moviePlayer est une variable de classe.
Lorsque le joueur a fini de jouer, ou lorsque l'usager appuie sur le bouton "ok" de la moviePlayer contrôleur, le
playbackFinished:
méthode est appelée:Dans lequel le style de contrôle de la moviePlayer est fixé à
MPMovieControlStyleNone
pour empêcher tout contrôle, mais essentiellement la barre d'état d'apparaitre lors de la moviePlayer est retiré de la vue parent.OriginalL'auteur Don Miguel