Как передавать mp3-url с помощью exoplayer?

Библиотека exoplayer кажется мне такой сложной. Может ли кто-нибудь помочь мне, как передать радиостанцию ​​url, используя библиотеку exoplayer? Я пробовал с MediaPlayer, он отлично работает, но потребовалось много времени для подготовки. Вот что я пробовал.

exoPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT); Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE); DataSource dataSource = new DefaultUriDataSource(getApplicationContext(), null, userAgent); Mp3Extractor extractor = new Mp3Extractor(); ExtractorSampleSource sampleSource = new ExtractorSampleSource( uri, dataSource, extractor, allocator, BUFFER_SEGMENT_COUNT * BUFFER_SEGMENT_SIZE); MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource); exoPlayer.prepare(audioRenderer); exoPlayer.setPlayWhenReady(true); 

Я не понимаю, как получить userAgent и что это значит?

Вот красивое описание того, что такое агент пользователя: user agent. Здесь также должно быть указано, как должен выглядеть пользовательский агент: структура заголовка пользовательского агента Здесь вы можете увидеть, как выглядит пользовательский агент вашего браузера: http: // whatsmyuseragent. ком /

Проще говоря, вы можете создать свой пользовательский агент следующим образом:

"YourAppName / VersionCode"

Наконец, описание того, как использовать ExoPlayer для потоковой передачи mp3: Stream mp3 с ExoPlayer. В этом примере это локальный mp3, но единственное различие должно быть URL-адресом mp3 и отсутствующим пользовательским агентом. Надеюсь это поможет!

Это самый простой способ потоковой передачи файлов m3u8 с помощью ExoPlayer Lib. Проверьте этот код и не забудьте изменить URL-адрес на свой, а также изменить тип контента, поскольку код с дуплером надеется помочь https://github.com/karim23/SimpleStreamPlayer/tree/master

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); context = getApplicationContext(); setContentView(R.layout.activity_main); //change the live streaming URL with yours. contentUri = /*"Your mp3 URL.."*/; // contentType = DemoUtil.TYPE_MP3; final Intent intent = new Intent(context, VideoPlayerActivity.class).setData(Uri.parse(contentUri)) .putExtra(VideoPlayerActivity.CONTENT_ID_EXTRA, -1) //Change the type according to the live streaming extension. .putExtra(VideoPlayerActivity.CONTENT_TYPE_EXTRA, DemoUtil.TYPE_MP3); liveStreamingTv =(TextView)findViewById(R.id.mainActivity_liveStreamingTv); liveStreamingTv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivity(intent); } }); } 

Это была проблема с кодеком, exoPlayer не поддерживает aac +