2017-09-23 33 views
1

J'ai commencé à utiliser ExoPlayer récemment dans mon application Android, mais le problème que j'ai rencontré était qu'ExoPlayer ne reconnaît pas automatiquement le type de source par son URL.Comment faire ExoPlayer reconnaît un type de source par son URL?

Y at-il une solution pour que je puisse passer une URL et ExoPlayer définit automatiquement comment la lire (comme une vidéo ou un flux HLS).

Répondre

0
private MediaSource buildMediaSource(Uri uri, String overrideExtension) { 
    int type = TextUtils.isEmpty(overrideExtension) ? Util.inferContentType(uri) 
    : Util.inferContentType("." + overrideExtension); 
    switch (type) { 
     case C.TYPE_SS: 
      return new SsMediaSource(uri, buildDataSourceFactory(false), 
       new DefaultSsChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger); 
     case C.TYPE_DASH: 
      return new DashMediaSource(uri, buildDataSourceFactory(false), 
       new DefaultDashChunkSource.Factory(mediaDataSourceFactory), mainHandler, eventLogger); 
     case C.TYPE_HLS: 
      return new HlsMediaSource(uri, mediaDataSourceFactory, mainHandler, eventLogger); 
     case C.TYPE_OTHER: 
      return new ExtractorMediaSource(uri, mediaDataSourceFactory, new DefaultExtractorsFactory(), 
       mainHandler, eventLogger); 
     default: { 
      throw new IllegalStateException("Unsupported type: " + type); 
    } 
} 

}

Source: https://github.com/google/ExoPlayer/blob/release-v2/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java