1

I am new to android development in eclipse ( because my computer is low config PC ). I will try making tv application like stream .m3u8 files over network. how to archive this with exoplayer? It is very confusing to me.

Pravin Kumar
  • 11
  • 1
  • 4
  • It kind of is, except I think the questioner (among other people probably, myself included at one point) don't realize that m3u8 files need `HLS` streaming – Nevermore Feb 01 '18 at 21:22

1 Answers1

1

m3u or m3u8 is a file type for media playlists, that's it. The content is going to be in the format HLS

HLS is:

HTTP-based media streaming communications protocol implemented by Apple Inc

(but non Apple products can stream it)

Here is a tutorial, https://possiblemobile.com/2016/03/hls-exoplayer/ but it's for an old version of exoplayer (because exoplayer has been going through lots of changes lately).


Here is a working version I use to play m3u8 files (MyURL is a http link to an m3u8 (playlist) file:

First initiate the player:

    BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();

    TrackSelection.Factory videoFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
    TrackSelector trackSelector = new DefaultTrackSelector(videoFactory);
    LoadControl loadControl = new DefaultLoadControl();

    // Create Player
    player = ExoPlayerFactory.newSimpleInstance(getApplicationContext(), trackSelector, loadControl);

Then add the HlsMediaSource

        Handler mHandler = new Handler();
        String userAgent = Util.getUserAgent(this, "User Agent");
        DataSource.Factory dataSourceFactory = new DefaultHttpDataSourceFactory(
                userAgent, null,
                DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
                1800000,
                true);
        HlsMediaSource mediaSource = new HlsMediaSource(MyURL, dataSourceFactory, 1800000,
                mHandler, null);
        player.setPlayWhenReady(true);
        player.prepare(mediaSource);

Using HLS, for m3u8 is a lot like using exoplayer with the default MediaSource, except you should use the HlsMediaSource instead

Nevermore
  • 7,141
  • 5
  • 42
  • 64