видео занимает много времени при загрузке в iphone - PullRequest
0 голосов
/ 07 сентября 2011

Я пытаюсь воспроизвести видео с сервера, используя MPMoviePlayerController и NSURL.Видео воспроизводится отлично, но на загрузку уходит много времени.Ниже приведен мой код:

- (void) readyPlayer {
    mp =  [[MPMoviePlayerController alloc] initWithContentURL:movieURL];

    if ([mp respondsToSelector:@selector(loadState)]) {
        // Set movie player layout
        [mp setControlStyle:MPMovieControlStyleFullscreen];
        [mp setFullscreen:YES];

        // May help to reduce latency
        [mp prepareToPlay];

        // Register that the load state changed (movie is ready)
        [[NSNotificationCenter defaultCenter] addObserver:self           
                                                 selector:@selector(moviePlayerLoadStateChanged:) 
                                                     name:MPMoviePlayerLoadStateDidChangeNotification 
                                                   object:nil];
    }

    else{
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(moviePreloadDidFinish:) 
                                                     name:MPMoviePlayerContentPreloadDidFinishNotification 
                                                   object:nil];
    }

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(moviePlayBackDidFinish:) 
                                                 name:MPMoviePlayerPlaybackDidFinishNotification 
                                               object:nil];
}



- (void) moviePlayerLoadStateChanged:(NSNotification*)notification {
    [lblActivity removeFromSuperview];
    [activity stopAnimating];
    // Unless state is unknown, start playback
    if ([mp loadState] != MPMovieLoadStateUnknown)
    {
        // Remove observer        
        [[NSNotificationCenter  defaultCenter] 
         removeObserver:self
         name:MPMoviePlayerLoadStateDidChangeNotification 
         object:nil];
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];

        // Rotate the view for landscape playback      
        [[self view] setBounds:CGRectMake(0, 0, 480, 320)];
        [[self view] setCenter:CGPointMake(160, 240)];
        [[self view] setTransform:CGAffineTransformMakeRotation(M_PI / 2)]; 

        // Set frame of movieplayer
        [[mp view] setFrame:CGRectMake(0, 0, 480, 320)];

        // Add movie player as subview
        [[self view] addSubview:[mp view]];   

        // Play the movie
        [mp play];
    }
}

Может кто-нибудь помочь мне понять, почему на загрузку уходит так много времени?

Спасибо
Панкадж

1 Ответ

0 голосов
/ 07 сентября 2011

Я предполагаю, что это не проблема вашего интернет-соединения на телефоне.Вы пытались загрузить то же видео на свой телефон, из своего приложения и другого нативного приложения (например, YouTube или Safari), чтобы увидеть, есть ли разница?

Глядя на подобный код, который мы сделали, я 'Меня интересует необходимость явного вызова метода [mp prepareToPlay];.Он вызывается автоматически при вызове play, поэтому мы явно не сделали этого.Не могли бы вы попробовать это без этого метода, чтобы увидеть, есть ли разница?

Надеюсь, это поможет!

...