Search code examples
iosios4media-player

unable to play video in iOS 4


I have written code to play video in iPhone OS 3.1.3 and video is playing fine.

but when i am trying to play video with the same code then video is not playing in iOS 4.

I know that Media player framework is changed for iOS 4. Is there any way i can play the video on different OS without preparing separate binary??


Solution

  • First check if you are on OS 3.2 or above. If yes, create a movie player the new way:

    if (NSClassFromString(@"UISplitViewController") != nil) {
      MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:yourURL];
      [[mp moviePlayer] prepareToPlay];
      [[mp moviePlayer] setShouldAutoplay:YES];
      [[mp moviePlayer] setControlStyle:2];
      [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoPlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
      [self presentMoviePlayerViewControllerAnimated:mp];
    } else {
      moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:yourURL];
      [self playMovieTheOldWay:moviePlayer];
    }
    

    You can close the new movie player like this:

    -(void)videoPlayBackDidFinish:(NSNotification*)notification
    {       
      [self dismissMoviePlayerViewControllerAnimated];
    }