Question

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?

Was it helpful?

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];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top