0

Lorsque vous essayez de répertorier 10 vidéos d'une playlist YouTube dans une activité Android dans RecylerView. Je n'ai pas d'erreurs mais je comprends que seule la dernière vidéo est jouable! les autres vidéos ne sont pas chargées.Liste des vidéos YouTube dans RecyclerView

enter image description here

J'utilise le YouTubePlayerView, comme dans les extraits de code suivant,

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; 
    } 
} 

J'ai trouvé cette réponse https://stackoverflow.com/a/36474697/1247399 donc devrais-je utiliser les vignettes ou WebView?

Répondre

0

Il est résolu en utilisant webviews au lieu de YouTubePlayerView