public
class
PageAdapter
extends
RecyclerView.Adapter<PageAdapter.PGHolder>{
private
ArrayList<ViewPager_Item> viewPagerItems;
public
PageAdapter(ArrayList itemlist) ...
@NonNull
@Override
public
PGHolder onCreateViewHolder(
@NonNull
ViewGroup parent,
int
viewType) ....
@Override
public
void
onBindViewHolder(
@NonNull
PGHolder holder,
int
position) {
if
(holder.player ==
null
){
holder.player = ExoPlayerFactory.newSimpleInstance(getActivity());
holder.exoplayerview.setPlayer(holder.player);
}
if
(viewPagerItems.size() >
0
) {
Uri uri = Uri.parse(viewPagerItems.get(position).vod);
String userAgent = Util.getUserAgent(getActivity(),
"MyApplication"
);
MediaSource mediaSource =
new
HlsMediaSource.Factory(
new
DefaultHttpDataSourceFactory(userAgent)).createMediaSource(uri);
LoopingMediaSource loopingMediaSource =
new
LoopingMediaSource(mediaSource);
holder.player.prepare(loopingMediaSource);
holder.player.seekTo(
100
);
}
}
@Override
public
int
getItemCount() {
return
viewPagerItems.size();
}
@Override
public
void
onViewAttachedToWindow(
@NonNull
PGHolder holder) {
super
.onViewAttachedToWindow(holder);
viewPager2.registerOnPageChangeCallback(
new
ViewPager2.OnPageChangeCallback() {
@Override
public
void
onPageSelected(
int
position) {
super
.onPageSelected(position);
if
(holder.getAdapterPosition() == position){
holder.player.setPlayWhenReady(
true
);
holder.layout.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
if
(holder.player.getPlayWhenReady()){
holder.player.setPlayWhenReady(
false
);
holder.playimg.setVisibility(View.VISIBLE);
}
else
{
holder.player.setPlayWhenReady(
true
);
holder.playimg.setVisibility(View.GONE);
}
}
});
}
}
});
}
@Override
public
void
onViewDetachedFromWindow(
@NonNull
PGHolder holder) {
super
.onViewDetachedFromWindow(holder);
holder.player.setPlayWhenReady(
false
);
holder.player.seekTo(
100
);
}
public
class
PGHolder
extends
RecyclerView.ViewHolder{
public
HashTagHelper mTextHashTagHelper;
public
ConstraintLayout layout;
public
PlayerView exoplayerview;
public
SimpleExoPlayer player;
public
PGHolder(
final
View itemView) {
super
(itemView);
layout = (ConstraintLayout) itemView.findViewById(R.id.layout);
exoplayerview = itemView.findViewById(R.id.exoplayerview);
}
}
}