【发布时间】:2018-09-04 15:36:53
【问题描述】:
我希望能够通过滚动回收站视图(如 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();
}
}
【问题讨论】:
-
我有一个库来解决这个用例,你可以在这里试试:ene.im/2017/07/09/toro-101-how-to-1
标签: android android-recyclerview android-videoview