Ich habe eine OS 3.0-Technik gefunden, die keine privaten API-Komponenten verwendet.
Sie können sich registrieren, um MPAVControllerTimeDidJumpNotification-Benachrichtigungen zu erhalten, und die MPAVControllerTimeParameter NSNumber aus dem userInfo Dictionary dieser Benachrichtigung abrufen.
Zum Beispiel, kurz bevor Sie die Wiedergabe starten, um die Register-Benachrichtigung zu erhalten:
#define MPAVControllerTimeDidJumpNotification @"MPAVControllerTimeDidJumpNotification"
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleTimeChanged:) name:MPAVControllerTimeDidJumpNotification object:nil];
dann den Film abgespielt. Fügen Sie eine Methode, die für jede Zeitänderung aufgerufen wird, als der Film abgespielt wird:
-(void)handleTimeChanged:(NSNotification *)notification
{
NSDictionary * userInfo = notification.userInfo;
int lastPositionInSeconds = [[userInfo valueForKey:@"MPAVControllerTimeParameter"] intValue];
NSLog(@"Last time was %d", lastPositionInSeconds);
}
Und wenn der Film zu spielen aufhört (Sie wissen, dass dies für MPMoviePlayerPlaybackDidFinishNotification Mitteilungen hören) stoppen für die MPAVControllerTimeDidJumpNotification Meldungen hören.
Jason, das ist großartig. Extrem hilfreich. –
Zum Schluss könnten Sie die lastPositionInSeconds in einer sql db speichern, und wenn der Benutzer zum Video zurückkehrt, können Sie Folgendes festlegen: moviePlayerController.initialPlaybackTime = lastPositionInSeconds; Und das sollte gut funktionieren. Danke noch einmal! –