J'ai trouvé une technique OS 3.0 qui n'utilise pas de composants API privés.
Vous pouvez vous inscrire pour recevoir des notifications MPAVControllerTimeDidJumpNotification et récupérer le numéro NSAV MPAVControllerTimeParameter dans le dictionnaire userInfo de cette notification.
Par exemple, juste avant de commencer la lecture de registre pour recevoir les notifications:
#define MPAVControllerTimeDidJumpNotification @"MPAVControllerTimeDidJumpNotification"
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleTimeChanged:) name:MPAVControllerTimeDidJumpNotification object:nil];
commencer ensuite la lecture du film. Ajouter une méthode qui sera appelée à chaque changement de temps que le film joue:
-(void)handleTimeChanged:(NSNotification *)notification
{
NSDictionary * userInfo = notification.userInfo;
int lastPositionInSeconds = [[userInfo valueForKey:@"MPAVControllerTimeParameter"] intValue];
NSLog(@"Last time was %d", lastPositionInSeconds);
}
Et quand le film cesse de jouer (vous savez en écoutant les notifications MPMoviePlayerPlaybackDidFinishNotification) cesser d'écouter les notifications de MPAVControllerTimeDidJumpNotification.
Jason, c'est génial. Extrêmement utile. –
Donc, pour finir, vous pouvez stocker le lastPositionInSeconds, dans un db sql, et lorsque l'utilisateur revient à la vidéo, vous pouvez définir: moviePlayerController.initialPlaybackTime = lastPositionInSeconds; Et cela devrait fonctionner correctement. Merci encore! –