Exo player DASH Streaming example

20,737

Here is a simple dash playing example which will play your stream content into SimpleExoPlayerView from exoplayer-ui.

Add SimpleExoPlayerView to your layout and use the code below

    SimpleExoPlayerView exoPlayerView = (SimpleExoPlayerView) findViewById(R.id.exo_player_view);

    DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "ExoPlayer"));
    Uri uri = Uri.parse("http://your_host/dash/stream.mpd");
    DashMediaSource dashMediaSource = new DashMediaSource(uri, dataSourceFactory,
            new DefaultDashChunkSource.Factory(dataSourceFactory), null, null);

    BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
    TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));

    SimpleExoPlayer simpleExoPlayer = ExoPlayerFactory.newSimpleInstance(this, trackSelector);

    exoPlayerView.setPlayer(simpleExoPlayer);
    simpleExoPlayer.prepare(dashMediaSource);

Also add the dependencies to your build.gradle

compile 'com.google.android.exoplayer:exoplayer-core:r2.4.0'
compile 'com.google.android.exoplayer:exoplayer-dash:r2.4.0'
compile 'com.google.android.exoplayer:exoplayer-hls:r2.4.0'
compile 'com.google.android.exoplayer:exoplayer-smoothstreaming:r2.4.0'
compile 'com.google.android.exoplayer:exoplayer-ui:r2.4.0'
Share:
20,737
Blagojco
Author by

Blagojco

5+ years experience as Android, Java EE and Web Developer. Hard working and motivated; always focused on achieving targets and completing tasks in timely fashion. Specialties Android; Android SDK, PhoneGap Java/J2EE DB/Persistence - Hibernate, JPA, JDBC Java Web - Servlets, JSP, Spring Web Containers/Application Servers - Tomcat, Glassfish JAX-RS, JAX-WS, JAXB NET; C++, C# Visual Studio, IIS, LINQ Databases; MySQL, SQL, Sqlite, MongoDB, PostgreSQL, SQL Server JavaScript, Plain, jQuery Video, Roku, Samsung Smart TV, Smart TV Alliance Virtual Reality, Unity, Samsung Gear VR, Oculus NodeJS, Wowza Media Server, HTML, CSS/CSS3, ActionScript, Photoshop, Corel Platforms/OS: MS Windows, Linux, Mac

Updated on April 29, 2020

Comments

  • Blagojco
    Blagojco about 4 years

    I'm trying to play DASH video on android devices with the ExoPlayer from Google (http://developer.android.com/guide/topics/media/exoplayer.html). The documentation is very, very poor and I cannot find some simplest working example with DASH (if someone did it). In the video (https://www.youtube.com/watch?v=6VjF638VObA#t=462) it looks simple but in reality there is a lot of unknown objects. I want to use only ExoPlayer library and without using their github demo because it is very complex and I didn't find a way to add my testing URL because all samples are from YouTube.

    Thanks

  • Bawender Yandra
    Bawender Yandra over 6 years
    The usage of Dash MediaSource in ExoPlayer is written right, but I think you don't need to add all the dependencies in the gradle as it will include all the sources. These Individual dependencies were released to be used by user by his or her requirement. including the following will suffice compile 'com.google.android.exoplayer:exoplayer-core:r2.4.0' compile 'com.google.android.exoplayer:exoplayer-dash:r2.4.0' compile 'com.google.android.exoplayer:exoplayer-ui:r2.4.0'
  • Sagar
    Sagar about 6 years
    @BawenderYandra I have something here stackoverflow.com/questions/48920678/… please check. I am new to this
  • Web.11
    Web.11 over 5 years
    @alijandro can you send another ocde for 2.9.4 ?
  • Arjun
    Arjun over 4 years
    I tried your solution but am getting the following error ~> Source error.com.google.android.exoplayer2.ParserException: org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT ������ ftypisom������...@3:25 in java.io.InputStreamReader@8bd3c66)