Ich habe mit ExoPlayer angefangen, um Audio zu streamen. Alles war gut, bis ich auf eine URL stieß, die eine "301 Moved Permanently" -Umleitung hatte. ExoPlayer2 behandelt das standardmäßig nicht.ExoPlayer2 - Wie kann ich eine HTTP 301-Weiterleitung funktionieren lassen?
ich schon diesen Thread gesehen habe: https://github.com/google/ExoPlayer/issues/423
Es sagen, dass sie die neue „allowCrossDomainRedirects“ Flag hinzufügen, um entweder ein HttpDataSource oder UriDataSource. Das Problem ist, dass ich eine dieser beiden Klassen nicht verwenden:
//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);
Sehen Sie, wie die ExtractorMediaSource eine dataSourceFactory erfordert anstelle eines Datasource. Tatsächlich kann ich nicht einmal die Klassen HttpDataSource und UriDataSource auf ExoPlayer2 finden. Sieht so aus, als wären sie entfernt worden.
Daher kann ich keinen Weg finden, die Flagge auf dem Post erwähnt hinzuzufügen. Kann mir jemand helfen?
Danke für den Beispielcode und die Erklärung - sehr geschätzt! – gmcnaughton