Search code examples
iosvideohttp-live-streamingm3u8

Playing .m3u8 file on iOS


I have .m3u8 link which I need to play on iOS which supports the HLS Protocol.

When I assign URL directly to the MPMoviePlayerController and play, video is not visible but I can hear the audio.

NSURL *movieURL = [NSURL URLWithString:@"http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8"];
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
[self.view addSubview:self.moviePlayer.view];

if (mp)
{
    // save the movie player object
    self.moviePlayer = mp;
    [self.moviePlayer setFullscreen:YES];

    // Play the movie!
    [self.moviePlayer play];
}

What additional stuff do I need to do on iOS side?


Solution

  • Import:

    #import <MediaPlayer/MediaPlayer.h>
    

    Then do:

    NSURL *movieURL = [NSURL URLWithString:@"http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8"];
    MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
    
    if (mp) {
        mp.view.frame = self.view.bounds;
        [self.view addSubview:mp.view];
    
        // save the movie player object
        [mp setFullscreen:YES];
    
        // Play the movie!
        [mp play];
    
        self.moviePlayer = mp;
    }