视频需要很长时间才能加载到iphone中

时间:2011-09-07 09:09:50

标签: iphone ios4 mpmovieplayercontroller iostream

我正在尝试使用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];
    }
}

有人可以帮我弄清楚为什么要花这么多时间装货?

感谢
的Pankaj

1 个答案:

答案 0 :(得分:0)

我假设你的手机上的互联网连接显然不是问题。您是否尝试在手机上添加相同的视频,从您的应用和其他原生应用(例如YouTube或Safari)中查看是否存在差异?

查看我们已经完成的类似代码,我想知道是否需要显式调用[mp prepareToPlay];方法。它在调用play时自动调用,因此我们没有明确这样做。如果没有这种方法可以尝试一下,看看是否存在差异?

希望这有帮助!