Search code examples
iphoneurlvideompmovieplayercontroller

Play 2 videos from url one after another


In my application i want to play 2 url videos one after another.

This is my code:

`- (void)viewDidLoad {

NSLog(@"viewDidLoad");
player = [[MPMoviePlayerController alloc] initWithContentURL:[self movieURL]];

[NSNotificationCenter defaultCenter]addObserver:self 
                                        selector:@selector(movieFinishedCallback:)
                                            name:MPMoviePlayerPlaybackDidFinishNotification
                                          object:player];
[player play];

[super vieDidLoad]; }

- (NSURL *)movieURL {

return [NSURL URLWithString: @"https://s3.amazonaws.com/adplayer/colgate.mp4"];//First video url after this video complete.I want to play the next url video.

}

- (void) movieFinishedCallback:(NSNotification*) aNotification {

NSLog(@"movieFinishedCallback");
player = [aNotification object];
[[NSNotificationCenter defaultCenter] 
 removeObserver:self
 name:MPMoviePlayerPlaybackDidFinishNotification
 object:player];    
[player autorelease];   

}

`

After one url video completed i want to play the next url video.

please anyone help me.

I have store the url's in array like this,

array=[[NSArray alloc] initWithObjects:@"https://s3.amazonaws.com/adplayer/colgate.mp4",@"https://s3.amazonaws.com/ventuno-platform-flv-sep2010/happy_family.mp4",nil];

Then how can i retrive the url in - (void) movieFinishedCallback:(NSNotification*) aNotification {

}method.please give me guidance in this.


Solution

  • I a have not tested it, but is should work, You might need it modify it little bit. At least, you now have an idea, how this can be done

    -(void)viewDidLoad
    { 
         [self initializPlayer];
    }
    
    
    
    static int i;   
    -(void)initializPlayer
    {
        if(i<=[arrMovieURL count])
            i +=1;
        else {
            i = 0;
        }
    
        if(player)
        {
            [player release];
            player = nil;
        }
        player = [[MPMoviePlayerController alloc] initWithContentURL:[arrMovieURL objectAtIndex:i]];
    
        [NSNotificationCenter defaultCenter]addObserver:self 
        selector:@selector(movieFinishedCallback:)
        name:MPMoviePlayerPlaybackDidFinishNotification
        object:player];
    
        [player play];
    }
    
    
    - (void) movieFinishedCallback:(NSNotification*) aNotification {
    
    NSLog(@"movieFinishedCallback");
    player = [aNotification object];
    [[NSNotificationCenter defaultCenter] 
     removeObserver:self
     name:MPMoviePlayerPlaybackDidFinishNotification
     object:player];    
    
     //calling again to play the next video
      [self initializPlayer];
     }