我正在尝试在Viewholder中播放视频,但没有播放任何内容,也没有错误消息 这是我的代码:
PostAdapter
public class PostAdapter extends RecyclerView.Adapter<PostAdapter.ViewHolder> {
public Context mContext;
public List<Post> mPost;
private FirebaseUser firebaseUser;
public PostAdapter(Context mContext, List<Post> mPost) {
this.mContext = mContext;
this.mPost = mPost;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(mContext).inflate(R.layout.post_item, viewGroup, false);
return new PostAdapter.ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
VideoView post_video;
post_video = viewHolder.itemView.findViewById(R.id.post_video);
Post post = mPost.get(i);
String videourl = post.getPostvideo().toString();
post_video.setVideoPath(videourl);
post_video.start();
if (post.getDescription().equals("")){
viewHolder.description.setVisibility(View.GONE);
} else {
viewHolder.description.setVisibility(View.VISIBLE);
viewHolder.description.setText(post.getDescription());
}
publisherInfo(viewHolder.image_profile, viewHolder.username, viewHolder.publisher, post.getPublisher());
}
@Override
public int getItemCount() {
return mPost.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
public VideoView post_video;
public ImageView image_profile, like, comment, save;
public TextView username, likes, publisher, description, comments;
public ViewHolder(@NonNull View itemView) {
super(itemView);
image_profile = itemView.findViewById(R.id.image_profile);
post_video = itemView.findViewById(R.id.post_video);
like = itemView.findViewById(R.id.like);
comment = itemView.findViewById(R.id.comment);
save = itemView.findViewById(R.id.save);
likes = itemView.findViewById(R.id.likes);
publisher = itemView.findViewById(R.id.publisher);
description = itemView.findViewById(R.id.description);
comments = itemView.findViewById(R.id.comments);
username = itemView.findViewById(R.id.username);
}
}
private void publisherInfo(ImageView image_profile, TextView username, TextView publisher, String userid) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users").child(userid);
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
Glide.with(mContext)
.load(user.getImageurl())
.into(image_profile);
username.setText(user.getUsername());
publisher.setText(user.getUsername());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
有人知道为什么它不播放吗?正确获取了网址(已通过Toast消息进行了测试) 我试图用SimpleExoPlayerView来做到这一点,但这无论如何都无法正常工作。我并没有要求完整的代码解决方案。
谢谢!