Для воспроизведения списка можно использовать только ManualPlayer в вашем VideoHolder:
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());
}
}
}
Методы для обработки цикла воспроизведения списка должны быть реализованы в 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 )