2012-03-09 13 views
1

MPMoviePlayerControllerをプリロードしたいのですが、MPMoviePlayerControllerが準備に時間がかかりすぎてロードアイコンが表示されているときにビデオが表示されるMPMoviePlayerLoadStateDidChangeNotificationしかし、私はそれが実際にどのように動作するか分からない再生前にムービーをプリロードする方法(MPMoviePlayerController)

は、これは私のコードです:それは直接ではなく、初めて再生された後、別のビデオ... :(

私が知っているがこれです。

- (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

ビデオが表示されるまで、UIActivityIndi​​catorViewを読み込みアイコンとして使用できます。 – erkanyildiz

関連する問題