Когда в первый раз создается MPMoviePlayerController (например, theMovie), его initialPlaybackTime может быть успешно установлен. Но когда theMoive выпущен и воссоздан новый MPMoviePlayerController, его intialPlaybackTime не может быть установлен правильно, фактически фильм всегда воспроизводится с самого начала. Код выглядит следующим образом.
-(void)initAndPlayMovie:(NSURL *)movieURL
{
MPMoviePlayerController *theMovie = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
// create a notification for moviePlaybackFinish
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie];
theMovie.initialPlaybackTime = 15;
[theMovie setScalingMode:MPMovieScalingModeAspectFill];
[theMovie play];}
-(void) moviePlayBackDidFinish:(NSNotification*)notification
{
MPMoviePlayerController * theMovie = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie];
[theMovie release];
[self initAndPlayMovie:[self getMovieURL]];
}
С помощью приведенного выше кода, когда viewcontroller загрузил и запустил initAndPlayMovie, фильм начинает воспроизводиться с 15 секунд, но когда он завершается или нажимается «Done», создается новый theMovie и начинается воспроизведение с 0 секунды. , Кто-нибудь знает, что случилось со свойством initialPlaybackTime в MPMoviePlayerController?
И всякий раз, когда вы перезагружаете viewController, где находится вышеуказанный код (presentModalViewController из родительского viewcontroller), фильм может начинаться с любого времени воспроизведения. Я действительно сбит с толку, в чем разница между методами регистрации MPMoviePlayerController между загрузкой viewcontroller и ее повторным созданием после выпуска.