У меня есть представление, которое показывает a MPMoviePlayerViewController
модально. При тестировании его в средстве моделирования iPad он работает хорошо над первой попыткой. Если я отклоняю видео и затем показываю представление снова, игрок только играет аудио, но не видео.
Действительно ли это - причуда средства моделирования, или я делаю что-то не так? Вот мой код:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
MPMoviePlayerViewController* v = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:v.moviePlayer];
[self presentMoviePlayerViewControllerAnimated:v];
[v release];
}
-(void) playbackDidFinish:(NSNotification*)aNotification
{
MPMoviePlayerController *player = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
[player stop];
[self dismissMoviePlayerViewControllerAnimated];
}
Вместо помещения кода для создания одного контроллера представления в viewWillAppear
другого контроллера представления, почему бы просто не создать MPMoviePlayerViewController
напрямую? Обычно контроллеры представлений создаются или отображаются в ответ на какое-либо действие пользователя. Кроме этого, в показанном коде нет ничего плохого. У меня никогда не было проблем с воспроизведением фильмов в симуляторе, но я создал MPMoviePlayerViewController
в didSelectRow или в ответ на нажатие кнопки.