Я работаю с приложением, которое должно воспроизводить видео на YouTube с помощью ExoPlayer2. Чтобы получить URL-адрес DASH видео, я использую эту библиотеку. Проблема с этим подходом заключается в том, что библиотека возвращает разные URL-адреса в зависимости от того, какое разрешение (itag) вы хотите. Например, если вам нужен вариант видео 720p, вы сделаете что-то вроде:
String youtubeLink = "http://youtube.com/watch?v=xxxx";
new YouTubeExtractor(this) {
@Override
public void onExtractionComplete(SparseArray<YtFile> ytFiles, VideoMeta vMeta) {
if (ytFiles != null) {
int itag = 22; //22 == 720p
String downloadUrl = ytFiles.get(itag).getUrl();
}
}
}.extract(youtubeLink, true, true);
Я могу сделать этот URL-адрес как MediaSource и установить его с помощью setMediaSource
, и он работает, но только с одним разрешением (в данном случае 720p). Я хочу сделать что-то вроде фотографии, прикрепленной к ответу на этот вопрос.
Я пытался читать документы, пробовал Google-Fu, но все было напрасно. Любые идеи о том, как я могу создавать разные дорожки с разным разрешением для одного и того же видео? Я пытался поставить MediaItem
и настроить их на проигрыватель, но вместо этого он создает список воспроизведения, а не треки. Любая помощь?
Извините за отсутствие кода, предыдущий разработчик натворил полный бардак в организации кода и я не знаю что где. Если бы я мог просто получить грубый код, это было бы безумно полезно.
Спасибо