Использование ExoPlayer в RecyclerView - официальный способ - PullRequest
1 голос
/ 26 марта 2020

Я хотел знать, есть ли рабочий образец для использования ExoPlayer в RecyclerView? Все примеры, которые я нашел, основаны на использовании ExoPlayer с одним представлением (PlayerView), но там нет примера для начинающих, демонстрирующего, как использовать ExoPlayer в среде RecyclerView, где виды могут быть присоединены или отсоединены. с видимого экрана.

Почему это так? Почему так сложно интегрировать ExoPlayer в экосистему Android Framework, чтобы мы могли использовать его, не изобретая колесо. Справедливо предположить, что перечисление видео в списке является распространенным требованием, но нет никаких указаний или чего-либо, что могло бы помочь Android разработчикам приложений. Очень немногие «подсказки» и «решения», живущие в inte rnet там, в большинстве случаев являются просто болью в заднице.

Единственные полезные источники, которые я нашел, это:

  1. ветка обсуждения github (которую я не использую, потому что каждый раз, когда я использую «неофициальные» решения, мои приложения почему-то создают sh, поэтому я всегда предпочитаю «официальную» "решения, предоставленные Google)
  2. и эта запись в блоге (которую я не могу использовать, потому что я использую новейшие Android компоненты архитектуры, такие как Paging с PagedListAdapter, Room для автономного кэширования, LiveData, et c. et c., которые не очень хорошо подходят для такого подхода).

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Я сделал репозиторий на github с множественной реализацией Exoplayer один из них - игрок в обзоре переработчика.

Посмотрите здесь https://github.com/yoobi/exoplayer-kotlin/tree/feature/rvItemPreview для полного кода .

0 голосов
/ 02 апреля 2020

Я только что делал подобные вещи в нашем приложении. Я могу воспроизвести 50 видео на странице и перевернуть страницу, каждая страница может воспроизводить много видео. Мы используем страницы просмотра и сохраняем три вида игрока и 5 экзоплееров. Имейте в виду, что управление игроками должно осуществляться глобально. Вам нужно поместить их в пул, приобрести их и поместить в метод pool.use setPlayer (), чтобы заменить игрока, вид и игрок отдельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...