使用Android中的Firebase在RecyclerView中添加Youtube API

时间:2017-09-07 09:48:07

标签: android firebase android-recyclerview youtube-api android-cardview

我正在构建一个应用程序,我想在其中使用 Youtube API 来运行视频,但问题是youtube API被复制到所有项目,我不这样做希望它来,我只想要一个特定的帖子,可以播放视频而不是所有帖子。我也在此应用程序中使用 RecyclerView cardView ,并使用 Firebase 作为我的数据库。请帮助我减少此冗余问题,我研究了很多问题,但没有找到任何有用的东西。是否有任何方式可以只在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" />

0 个答案:

没有答案