Я хочу иметь возможность воспроизводить и приостанавливать видео, прокручивая окно рециркулятора, как в Instagram.
Я уже видел много вопросов в stackoverflow об этой теме, но я не знаю, как реализовать решения в моем коде.
Итак, у меня есть Recycler Adapter, где я могу получить всю информацию о пользователе из firebase и отобразить ее в своем приложении.
public class FeedRecyclerAdapter extends RecyclerView.Adapter<FeedRecyclerAdapter.ViewHolder> {
private List<Feed>feedList;
private FirebaseFirestore firebaseFirestore;
public Context context;
private FirebaseAuth firebaseAuth;
public FeedRecyclerAdapter(List<Feed> feedList){
this.feedList = feedList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.feed_row, parent, false);
context = parent.getContext();
firebaseFirestore = FirebaseFirestore.getInstance();
firebaseAuth = FirebaseAuth.getInstance();
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.setIsRecyclable(false);
final String feedPostId = feedList.get(position).FeedPostId;
final String currentUserId = firebaseAuth.getCurrentUser().getUid();
String desc_data = feedList.get(position).getDesc();
holder.setDesc(desc_data);
String video_url = feedList.get(position).getVideo_url();
holder.setFeedVideo(video_url);
}
@Override
public int getItemCount() {
return feedList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private TextView desc;
private View mView;
private VideoView videoView;
private TextView username;
public ViewHolder(View itemView) {
super(itemView);
mView=itemView;
}
public void setDesc(String descText){
desc = mView.findViewById(R.id.post_desc);
desc.setText(descText);
}
public void setFeedVideo(final String downloadUri){
videoView = mView.findViewById(R.id.postVideo);
videoView.setVideoPath(downloadUri);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.setLooping(true);
}
});
videoView.start();
}
}