在RecyclerView中列出YouTube视频

时间:2017-09-05 16:07:31

标签: android android-recyclerview youtube-data-api android-youtube-api

尝试在RecylerView中的Android活动中列出youtube播放列表的10个视频时。我没有收到错误,但我发现只有最后一个视频可以播放! 其他视频未加载。

enter image description here

我使用YouTubePlayerView,如下面的代码段所示,

public class PlaylistViewAdapter extends RecyclerView.Adapter {
    PlaylistItem[] playlist;
    String APIKey;

    public PlaylistViewAdapter(PlaylistItem[] c, String APIKey) {

        playlist = c;
        this.APIKey = APIKey;
    }


    class PlaylistItemData extends RecyclerView.ViewHolder {

        TextView title;
        TextView desc;
        YouTubePlayerView videoPlayer;

        public PlaylistItemData(View itemView) {
            super(itemView);
            title = (TextView) itemView.findViewById(R.id.title);
            desc = (TextView) itemView.findViewById(R.id.desc);
            videoPlayer = (YouTubePlayerView) itemView.findViewById(R.id.youtube_player_view);


        }
    }


    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.playlist_row, parent, false);

        PlaylistItemData dataObjectHolder = new PlaylistItemData(view);
        return dataObjectHolder;
    }

    @Override
    public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {

        ((PlaylistItemData) holder).videoPlayer.initialize(APIKey, new YouTubePlayer.OnInitializedListener() {
            @Override
            public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
         //       if (!b) {
                    youTubePlayer.cueVideo(playlist[position].getVideoId());
       //         }
            }

            @Override
            public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
                Log.i("onBindView", youTubeInitializationResult.toString());
            }
        });
        ((PlaylistItemData) holder).title.setText(playlist[position].getTitle());
        ((PlaylistItemData) holder).desc.setText(playlist[position].getDesc());

    }


    @Override
    public int getItemCount() {

        return playlist.length;
    }
}

我找到了这个答案https://stackoverflow.com/a/36474697/1247399所以我是否应该使用缩略图或webview?

1 个答案:

答案 0 :(得分:0)

通过使用网页浏览而不是YouTubePlayerView

解决了这个问题