2012-03-09 3 views
1

Я хотел бы предварительно загрузить мой MPMoviePlayerController, проблема в том, что MPMoviePlayerController занимает слишком много времени, чтобы подготовиться, чтобы отображать значок загрузки, тогда отображается видео, если я играю другое видео после того, как он воспроизводится напрямую, а не первый раз ... :(Как предварительно загрузить фильм перед его воспроизведением (MPMoviePlayerController)

я знаю, что это: MPMoviePlayerLoadStateDidChangeNotification но я не знаю, как это работает на самом деле

Это мой код:.

- (void) startSlideShow:(NSString *)nameFile 
{  
    NSURL *url = [NSURL fileURLWithPath:nameFile]; 
    MPMoviePlayerController *moviePlayer = 
    [[MPMoviePlayerController alloc] initWithContentURL:url]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(moviePlayBackDidFinish:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:moviePlayer]; 

    moviePlayer.view.frame = CGRectMake(0, 0, 768, 1024); 
    moviePlayer.controlStyle = MPMovieControlStyleDefault; 

    [self.view addSubview:moviePlayer.view]; 
    CATransition *animation = [CATransition animation]; 
    [animation setDuration:0.5]; 
    [animation setType:kCATransitionFade]; 
    [animation setSubtype:kCATransitionFromLeft]; 
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 

    [[self.view layer] addAnimation:animation forKey:@"SwitchToView1"]; 
    [moviePlayer setFullscreen:YES animated:YES]; 
    } 


-(void)moviePlayBackDidFinish: (NSNotification*)notification 
{ 
    MPMoviePlayerController *moviePlayer = [notification object]; 

    [[NSNotificationCenter defaultCenter] removeObserver:self  
                name:MPMoviePlayerPlaybackDidFinishNotification 
                object:moviePlayer]; 

    if ([moviePlayer respondsToSelector:@selector(setFullscreen:animated:)]) 
    { 
     [moviePlayer.view removeFromSuperview]; 
    } 
    [self checkResources]; 
} 

ответ

0

Я не думаю, что вы можете ускорить процесс загрузки видео. Единственное, что вы можете сделать, это загрузить видео раньше, чем отобразить его.

Для государственных игрок уведомлений см моего ответа здесь: https://stackoverflow.com/a/9073946/624808

+0

идеально это вид работы, но, по крайней мере, я не значок загрузки :) – user1256827

+0

Но есть еще несколько секунд загрузки (даже если мы не видим значок загрузки), как я могу заставить его начать прямо ... наконец, почему это занимает время на первом видео? потому что он инициализирует MPMoviePlayerController, а другим не нужно его инициализировать или что? : s – user1256827

+0

Вы можете использовать UIActivityIndicatorView в качестве значка загрузки до появления видео. – erkanyildiz

 Смежные вопросы

  • Нет связанных вопросов^_^