Tôi bắt đầu sử dụng ExoPlayer để phát trực tuyến một số âm thanh. Tất cả là tốt cho đến khi tôi đi qua một URL có một chuyển hướng 301 chuyển vĩnh viễn. ExoPlayer2 không xử lý theo mặc định.ExoPlayer2 - Làm cách nào để chuyển hướng HTTP 301 hoạt động?
Tôi đã nhìn thấy chủ đề này: https://github.com/google/ExoPlayer/issues/423
Ở đó, họ nói để thêm mới "allowCrossDomainRedirects" cờ hoặc là một HttpDataSource hoặc UriDataSource. Vấn đề là tôi không sử dụng một trong các lớp đó:
//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);
Xem cách ExtractorMediaSource yêu cầu dataSourceFactory thay vì nguồn dữ liệu. Trong thực tế, tôi thậm chí không thể tìm thấy các lớp HttpDataSource và UriDataSource trên ExoPlayer2. Có vẻ như chúng đã bị xóa.
Vì vậy, tôi không thể tìm thấy cách thêm cờ được đề cập trên bài đăng. Ai đó có thể giúp tôi được không?
Cảm ơn mã mẫu và giải thích - được đánh giá rất nhiều! – gmcnaughton