我正在构建一个应用程序,我想在其中使用 Youtube API来运行视频,但问题是 youtube API被复制到我不会使用的所有卡片项目中希望它来,我只想要一个特定的帖子,可以播放视频而不是所有帖子。我也在 Firebase 这个应用程序中使用 RecyclerView 和 cardView 作为我的数据库。请帮助我减少这个冗余问题,我研究了很多问题但没有发现任何有用的东西。是否有任何方式可以只在cardView的某些帖子上播放视频,而不是全部播放。例如 facebook 应用程序或 instagram 应用程序,其中视频来自特定帖子而不是所有帖子。
我正在使用Android Studio
Youtube FirebaseAdapter类文件:
FirebaseRecyclerAdapter <post, postViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<post, postViewHolder>(
post.class,
R.layout.post_row_recycle_home,
postViewHolder.class,
mDatabaseReference
) {
@Override
protected void populateViewHolder(postViewHolder viewHolder, post model, int position) {
viewHolder.setYoutube(model.getYoutube());
}
};
mrecyclerView.setAdapter(firebaseRecyclerAdapter);
}
public static class postViewHolder extends RecyclerViewPager.ViewHolder{
View mView;
public postViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setYoutube(final String youtube){
final YouTubePlayerView youPlay = (YouTubePlayerView) mView.findViewById(R.id.youtuber);
youPlay.initialize("SOME KEY",
new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
YouTubePlayer youTubePlayer, boolean b) {
youTubePlayer.cueVideo(youtube);
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider,
YouTubeInitializationResult youTubeInitializationResult) {
}
});
}
youtube CardView xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/CardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardCornerRadius="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.youtube.player.YouTubePlayerView
android:id="@+id/youtuber"
android:layout_width="match_parent"
android:layout_height="200dp" />