Zacząłem używać ExoPlayera do streamowania dźwięku. Wszystko było dobrze, dopóki nie natrafiłem na adres URL z przekierowaniem "301 przeniesiono na stałe". ExoPlayer2 nie obsługuje tego domyślnie.ExoPlayer2 - Jak mogę wykonać przekierowanie HTTP 301?
Widziałem już ten wątek: https://github.com/google/ExoPlayer/issues/423
Nie mówią, aby dodać nową flagę „allowCrossDomainRedirects” albo do HttpDataSource lub UriDataSource. Problemem jest to, że nie korzystają z żadnej z tych klas:
//I am NOT using SimpleExoPlayer because I need a different renderer.
exoPlayer = ExoPlayerFactory.newInstance(renderers, trackSelector, loadControl);
final DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(
context,
Util.getUserAgent(context, applicationInfo.getAppName())
);
// Produces Extractor instances for parsing the media data.
final ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
// This is the MediaSource representing the media to be played.
MediaSource mediaSource = new ExtractorMediaSource(
Uri.parse(media.getUriString()) /* uri */,
dataSourceFactory,
extractorsFactory,
10,
null /* eventHandler */,
null /* eventListener */);
exoPlayer.prepare(mediaSource);
Zobacz jak ExtractorMediaSource wymaga dataSourceFactory zamiast DataSource. W rzeczywistości nie mogę nawet znaleźć klas HttpDataSource i UriDataSource w ExoPlayer2. Wygląda na to, że zostały usunięte.
Dlatego nie mogę znaleźć sposobu na dodanie flagi wymienionej w poście. Czy ktoś może mi pomóc?
Dzięki za przykładowy kod i wyjaśnienie - bardzo doceniane! – gmcnaughton