Скрыть MPMoviePlayerController при загрузке нового видео - PullRequest
3 голосов
/ 03 декабря 2010

У меня есть приложение для iPad с четырьмя кнопками на левой стороне, которое соответствует 4 различным видеоклипам. Когда пользователь нажимает на видео, которое он хочет увидеть, оно появляется справа. Я хочу, чтобы он казался загружаемым (как будто он транслировался через Интернет). Я добавил UIActivityIndicator в центр черного видеокадра, и у меня есть поток, который останавливается на 3 секунды. Однако плеер, содержащий предыдущее видео, не исчезает. Он просто останавливается на последнем кадре предыдущего видео на 3 секунды (скрывая индикатор активности), а затем появляется новое видео.

Есть идеи, как сделать игрока временно скрытым? Спасибо за любую помощь. Вот мой код:

-(IBAction) videoButton1{
   [player stop];
   [player release];

   [self.activityIndicator startAnimating];

   NSString *url = [[NSBundle mainBundle] pathForResource:@"video1" ofType:@"mov"];
   [self setupVideoPlayer:url];
}

-(void) setupVideoPlayer: (NSString *) url{
   player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url)];
   player.view.frame = CGRectMake(487, 205, 478, 320);

   [self.view addSubview:player.view];

   [NSThread sleepForTimeInterval:3.0];
   self.activityIndicator stopAnimating];

   [player play];
}

1 Ответ

2 голосов
/ 07 декабря 2010

Вы можете установить для своего проигрывателя вид, который вы можете создавать в IB или программно, вместо того, чтобы каждый раз выполнять CGRectMake.

self.player.view.frame = self.viewForMovie.bounds;

self.player.view.autoresizingMask = UIViewAutoresizingF FlexibleWidth |UIViewAutoresizingF FlexibleHeight;

Затем в вашем "videoButton1" вы можете установить альфа вида в 0

viewForMovie.alpha = 0;

И в вашем «setupVideoPlayer» вы можете изменить альфа обратно на 1.

...