1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yangchaojiang0515-yjPlay

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
RELEASEVIDEO_LIST.md 4.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 16:27 c8545c9

Три. Список

  1. Для воспроизведения списка можно использовать только ManualPlayer в вашем VideoHolder:

      1. В списке элементов управления используйте атрибут «app:controller_layout_id="@layout/simple_exo_playback_list_view"». Это обеспечит макет контроллера для простого режима воспроизведения списка.
      1. Установите player_list="true", чтобы включить режим списка.
      1. Чтобы сохранить прогресс воспроизведения текущего видео, необходимо установить тег для элемента списка. Если это не будет сделано, то прогресс не сохранится. Для этого используется метод userPlayer.setTag(getAdapterPosition()).
      1. Пример кода:
      public class VideoAdapter extends RecyclerView.Adapter<VideoAdapter.VideoViewHolder> {
          ...
          @Override
          public VideoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
              View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_video1, parent, false);
              return new VideoViewHolder(itemView);
          }
      
          @Override
          public void onBindViewHolder(VideoViewHolder holder, int position) {
              String video = mVideoList.get(position);
              holder.bindData(video);
          }
      
          public class VideoViewHolder extends RecyclerView.ViewHolder {
              ManualPlayer userPlayer;
              VideoPlayerView playerView;
      
              public VideoViewHolder(View itemView) {
                  super(itemView);
                  // Инициализация элементов управления
                  playerView = (VideoPlayerView) itemView.findViewById(R.id.item_exo_player_view);
                  userPlayer = new ManualPlayer((Activity) mContext, playerView);
              }
      
              /*** Связывание данных ***/
              public void bindData(String videoBean) {
                  userPlayer.setTitles("" + getAdapterPosition());
                  userPlayer.setPlayUri(videoBean);
      
                  // Установка тега для элемента списка, чтобы сохранить текущий прогресс воспроизведения видео
                  Glide.with(mContext) .load("...") .into(playerView.getPreviewImage());
              }
          }
      }
  2. Методы для обработки цикла воспроизведения списка должны быть реализованы в Activity или Fragment. При использовании viewPager не следует реализовывать методы жизненного цикла Fragment, такие как onDestroy() и onPause(). Вместо этого рекомендуется использовать методы onResume(), onConfigurationChanged(), onBackPressed() и другие.

    @Override
    protected void onPause() {
        super.onPause();
        VideoPlayerManager.getInstance().onPause();
    }
    
    @Override
    protected void onResume() {
        super.onResume();
        VideoPlayerManager.getInstance().onResume();
    }
    
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        // Обработка переключения между горизонтальным и вертикальным экранами
        VideoPlayerManager.getInstance().onConfigurationChanged(newConfig);
        super.onConfigurationChanged(newConfig);
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        VideoPlayerManager.getInstance().onDestroy();
    }
    
    @Override
    public void onBackPressed() {
        // Обработчик события нажатия кнопки «Назад»
        if (VideoPlayerManager.getInstance().onBackPressed()) {
            finish();
        }
    }

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yangchaojiang0515-yjPlay.git
git@api.gitlife.ru:oschina-mirror/yangchaojiang0515-yjPlay.git
oschina-mirror
yangchaojiang0515-yjPlay
yangchaojiang0515-yjPlay
master