2016-05-16 9 views

Antwort

2
public class MainActivity extends AppCompatActivity implements YouTubeThumbnailView.OnInitializedListener, YouTubeThumbnailLoader.OnThumbnailLoadedListener, YouTubePlayer.OnInitializedListener { 


    YouTubePlayerFragment playerFragment; 
    YouTubePlayer Player; 
    YouTubeThumbnailView thumbnailView; 
    YouTubeThumbnailLoader thumbnailLoader; 
    RecyclerView VideoList; 
    RecyclerView.Adapter adapter; 
    List<Drawable> thumbnailViews; 
    List<String> VideoId; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     thumbnailViews = new ArrayList<>(); 
     VideoList = (RecyclerView) findViewById(R.id.VideoList); 
     RecyclerView.LayoutManager layoutManager=new LinearLayoutManager(this); 
     VideoList.setLayoutManager(layoutManager); 
     adapter=new VideoListAdapter(); 
     VideoList.setAdapter(adapter); 
     VideoId = new ArrayList<>(); 
     thumbnailView = new YouTubeThumbnailView(this); 
     thumbnailView.initialize("API KEY", this); 
     playerFragment = (YouTubePlayerFragment) getFragmentManager().findFragmentById(R.id.VideoFragment); 
     playerFragment.initialize("API KEY", this); 
    } 


    @Override 
    public void onInitializationSuccess(YouTubeThumbnailView youTubeThumbnailView, YouTubeThumbnailLoader youTubeThumbnailLoader) { 
     thumbnailLoader = youTubeThumbnailLoader; 
     youTubeThumbnailLoader.setOnThumbnailLoadedListener(MainActivity.this); 
     thumbnailLoader.setPlaylist("PLAYLIST ID"); 
    } 

    @Override 
    public void onInitializationFailure(YouTubeThumbnailView youTubeThumbnailView, YouTubeInitializationResult youTubeInitializationResult) { 

    } 


    public void add() { 
     adapter.notifyDataSetChanged(); 
     if (thumbnailLoader.hasNext()) 
      thumbnailLoader.next(); 
    } 

    @Override 
    public void onThumbnailLoaded(YouTubeThumbnailView youTubeThumbnailView, String s) { 
     thumbnailViews.add(youTubeThumbnailView.getDrawable()); 
     VideoId.add(s); 
     add(); 
    } 

    @Override 
    public void onThumbnailError(YouTubeThumbnailView youTubeThumbnailView, YouTubeThumbnailLoader.ErrorReason errorReason) { 

    } 

    @Override 
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
     Player=youTubePlayer; 
     Player.setOnFullscreenListener(new YouTubePlayer.OnFullscreenListener() { 
      @Override 
      public void onFullscreen(boolean b) { 
       VideoList.setVisibility(b?View.GONE:View.VISIBLE); 
      } 
     }); 
    } 

    @Override 
    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { 

    } 

    public class VideoListAdapter extends RecyclerView.Adapter<VideoListAdapter.MyView>{ 

    public class MyView extends RecyclerView.ViewHolder{ 

     ImageView imageView; 
     public MyView(View itemView) { 
      super(itemView); 
      imageView= (ImageView) itemView.findViewById(R.id.thumbnailView); 
     } 

    } 

    @Override 
    public VideoListAdapter.MyView onCreateViewHolder(ViewGroup parent, int viewType) { 
     View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.video_row, parent, false); 
     return new MyView(itemView); 
    } 

    @Override 
    public void onBindViewHolder(VideoListAdapter.MyView holder, final int position) { 
     holder.imageView.setImageDrawable(thumbnailViews.get(position)); 
     holder.imageView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Player.cueVideo(VideoId.get(position)); 
      } 
     }); 
    } 

    @Override 
    public int getItemCount() { 
     return thumbnailViews.size(); 
    } 
} 
} 

activity_main & video_row

1

Sie recyclerView für die Liste verwenden können. Ich habe dies mit Youtube API Rest Anrufe getan. Sie müssen einen Browserschlüssel von der Google Developer Console abrufen. Ich habe dies in meiner Antwort hier erklärt:

https://stackoverflow.com/a/41201084/3689744

Verwandte Themen