2010-10-19 19 views
5

Je développe actuellement une application de web-tv qui utilise MPMoviePlayerViewController resp. MPMoviePlayer pour lire le contenu vidéo en streaming sur l'iPhone. Le problème que j'ai ici est qu'une fois que je débranche mes écouteurs (tout en regardant la télévision) le joueur s'arrête. Étant donné que je ne montre pas les commandes standard (bouton précédent, bouton lecture/pause, bouton suivant) mais mes commandes personnalisées, l'utilisateur est bloqué avec l'image figée sauf s'il passe à un nouveau canal.MPMoviePlayerViewController arrête la lecture lors du débranchement des écouteurs

Y at-il un moyen de détecter une interruption de lecture causée par le débranchement des écouteurs?

Merci pour vos astuces et Tipps à l'avance,

sam

Répondre

3

Je n'ai pas une réponse directe à votre question. Mais je pense que MPMoviePlayerPlaybackStateDidChangeNotification sera assez bon pour résoudre votre problème. Une fois que vous êtes averti, obtenez l'état de lecture à partir de la propriété playbackState de l'objet lecteur de film et prenez les mesures appropriées.

2

Élaborant sur la réponse acceptée avec un code:

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


- (void)videoPlaybackStateChanged :(NSNotification *)notification 
{ 
    if (moviePlayer != nil && [moviePlayer playbackState] == MPMoviePlaybackStatePaused) 
    { 
     [moviePlayer play]; 
    } 
} 
+0

Il convient de noter que les '[]' movieplayer playbackState changements à 'MPMoviePlaybackStatePaused' à la fin du film. Donc, si vous ne voulez pas que le film se répète, vous devrez vérifier que ce n'est pas à la fin avec '[moviePlayer currentPlaybackTime]! = [Durée de moviePlayer]'. – zyzof