1

I am using MPMoviePlayerController for playing video. Now I want to play multiple video in loop. Here is my code:

self.movieController = [[MPMoviePlayerController alloc] init];

    NSURL *url = [NSURL URLWithString:@"My Video Path"];
    [self.movieController setContentURL:url];
    [self.movieController.view setFrame:CGRectMake (0.0f, 0.0f, 320.0f, 370.0f)];
     self.movieController.controlStyle = MPMovieControlStyleDefault;
    [self.movieController setFullscreen:YES animated:YES];
   // self.movieController.movieSourceType = MPMovieSourceTypeFile;
    [self.view addSubview:self.movieController.view];

    [self.movieController play];

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

- (void)moviePlayBackDidFinish:(NSNotification *)notification {

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

[self.movieController stop];
[self.movieController.view removeFromSuperview];
self.movieController = nil;

}

It is working fine for 1 video. Now, suppose I have two URLs which will play automatically one after another. How should I do it?

rohan
  • 302
  • 3
  • 18

2 Answers2

1

On MPMoviePlayerController you need to setContentURL each time you want to change the video. I'd suggest on moviePlayBackDidFinish don't kill the player but add another [self.movieController setContentURL:url]; and play (or prepareToPlay)

It won't happen immediately, so maybe you'll need a UIActivityIndicatorView

Edit :

Option number 2, if you want to use AVPlayer directly - you have AVQueuePlayer

Amit Verma
  • 40,709
  • 21
  • 93
  • 115
Boaz
  • 4,864
  • 12
  • 50
  • 90
1
- (void)moviePlayBackDidFinish:(NSNotification *)notification {

    if (needNextPlay) {
        MPMoviePlayerController *player = (MPMoviePlayerController *)[notification object];
        NSURL *url = [NSURL URLWithString:@"Your new Video Path"];
        [player setContentURL:url];
    } else {
        [self.movieController stop];
        [self.movieController.view removeFromSuperview];
        self.movieController = nil;
    }

}
LLIAJLbHOu
  • 1,313
  • 12
  • 17