У меня проблема с MPMoviePlayerController. Когда я смотрю видео и нажимаю кнопку «Готово» в левой верхней части, MoviePlayer не исчезает, даже если кажется, что код вызывается:
NSURL *url = [NSURL URLWithString:article.enclosureLink];
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
// Set movie player layout
[moviePlayer setControlStyle:MPMovieControlStyleFullscreen];
[moviePlayer setFullscreen:YES];
// May help to reduce latency
[moviePlayer prepareToPlay];
// Register to receive a notification when the movie has finished playing.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieReadyToPlay:)
name:MPMoviePlayerLoadStateDidChangeNotification
object:moviePlayer];
И селекторы:
- (void) movieReadyToPlay:(NSNotification*)notification {
MPMoviePlayerController *moviePlayer = [notification object];
if(moviePlayer.loadState == MPMovieLoadStatePlayable){
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerLoadStateDidChangeNotification object:moviePlayer];
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
//moviePlayer.shouldAutoplay = YES;
[self.view addSubview:moviePlayer.view];
[moviePlayer setFullscreen:YES animated:YES];
[moviePlayer play];
}
}
- (void) moviePlayBackDidFinish:(NSNotification*)notification {
MPMoviePlayerController *moviePlayer = [notification object];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
[moviePlayer setFullscreen:NO animated:YES];
[moviePlayer.view removeFromSuperview];
[moviePlayer release];
NSLog(@"Finished movie!");
}
Мне кажется, это очень простой код, но я должен сделать глупую ошибку. NSLog показывает, что функция вызывается, но игрок остается там, где она есть, и от нее невозможно избавиться.
Кроме того, сам факт того, что плеер все еще работает после предполагаемого выпуска, похоже, указывает на то, что есть что-то фундаментальное неправильно, я просто не вижу, что.
Есть кто-нибудь, у кого есть предложение?
[Обновление:]
Странно в симуляторе iPhone все работает отлично!
[Update2:]
Я попробовал и создал определенный UIviewcontroller, хотя я не хочу делать это, так как анимация не очень приятная. Но я узнал, что у меня та же проблема. Похоже, что-то нужно было сделать с увольнением игрока, но это началось снова.
Когда я ставлю [self.moviePlayer setFullscreen: YES animated: YES]; в viewDidApear и нажмите кнопку «Готово» в плеере, проигрывателе, видео начинается снова, когда я нажимаю кнопку «Готово» (снова вызывается viewDidAppear). Итак, что-то срабатывает, так что мне кажется, чтобы видео началось снова.
Если я поставлю это viewDidLoad, то система работает, но графика перепутана и запутана ...
Любая помощь очень, очень ценится, так как я трачу на это два дня, не задумываясь об этом!