Search code examples
iosmedia-playermpmovieplayercontrollerhttp-live-streaming

iOS: HTTP Live Streaming to app, Video won't play


I'm have some video files ready for streaming on my server. Here's the code I'm trying to use to play them in an iOS app:

    Video *vid = [videos objectAtIndex:index];
    NSURL *vidUrl = [NSURL URLWithString:vid.videoUrl];
    NSLog(@"%@",vid.videoUrl);
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:vidUrl];
    player.controlStyle=MPMovieControlStyleEmbedded;
    [player.view setFrame:self.view.bounds];
    [self.view addSubview:player.view];
    [player play];

If I copy and paste the URL the NSLog spits out into Safari, the video plays fine. So I know the URL is good. But in my app, I just get a black screen. What's wrong with my code?


Solution

  • MPMoviePlayerController needs to be a strong property declared as so @property (strong, nonatomic) MPMoviePlayerController *mvpc;

    Then whenever you want to play a movie you would write:

    self.mvpc = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"movieURL"]];
    self.mvpc.shouldAutoplay = YES; //Optional
    self.mvpc.controlStyle = MPMovieControlStyleEmbedded;
    [self.mvpc prepareToPlay];
    [self.mvpc.view setFrame:self.view.bounds];
    [self.view addSubview:self.mvpc.view];
    [self.mvpc play];