0

J'ai utilisé l'API Youtube dans mon application avec FirebaseRecyclerAdapter et RecyclerView et, pour certaines raisons, ma vignette YouTube n'est pas affichée dans mon application, bien que je l'ai ajoutée dans mon CardView et mon FirebaseRecyclerAdapter a le code pour accéder au CardView mais quand je démarre mon application et que je vais à cette activité aucune vignette n'est montrée là-bas. Je l'ai implémenté en tant que codé en dur sans adaptateur Firebase.CardView n'affiche pas l'affichage sous forme de vignette Youtube dans Android

mesures que j'ai essayé:

  1. Ajouté la mise en page gestionnaire

  2. Réglage de la hauteur et la largeur Vignettes et ThumbnailView

Je Android Studio

fichier de classe YouTube:

public class YoutubeVideos extends YouTubeBaseActivity { 

    private RecyclerView YouRecycler; 
    private DatabaseReference YDatabaseReference; 


    @Override 
    protected void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 
     setContentView(R.layout.youtube_videos); 
     YDatabaseReference = FirebaseDatabase.getInstance().getReference().child("youtubed"); 
     YouRecycler = (RecyclerView)findViewById(R.id.Youtube_recycler); 

    } 

    @Override 
    public void onStart() { 
     super.onStart(); 

    FirebaseRecyclerAdapter<post2youtube, YoutubeViewHolder> YfirebaseRecyclerAdapter = new FirebaseRecyclerAdapter<post2youtube, YoutubeViewHolder>(

      post2youtube.class, 
      R.layout.youtube_videos_card, 
      YoutubeViewHolder.class, 
      YDatabaseReference 
    ) { 
     @Override 
     protected void populateViewHolder(YoutubeViewHolder viewHolder, post2youtube model, int position) { 
      viewHolder.setYoutube(model.getYoutube()); 
     } 

    }; 

      YouRecycler.setAdapter(YfirebaseRecyclerAdapter); 
    }  


    public static class YoutubeViewHolder extends RecyclerView.ViewHolder { 
     View yView; 

     public YoutubeViewHolder(View YitemView) { 
      super(YitemView); 
      yView = YitemView; 
     } 
     public void setYoutube(final String youtube){ 
      final YouTubePlayerView youPlay = (YouTubePlayerView) yView.findViewById(R.id.youtuber); 
      youPlay.initialize("Some key", 
        new YouTubePlayer.OnInitializedListener() { 
         @Override 
         public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) { 
          youTubePlayer.loadVideo(youtube); 
         } 

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

         } 

        }); 
     } 

    } 
} 

fichier RecyclerView YouTube:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <android.support.v7.widget.RecyclerView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id ="@+id/Youtube_recycler"/> 

</LinearLayout> 

fichier xml YouTube Vignettes:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/youtube_cardView" 
    android:layout_width="match_parent" android:layout_height="match_parent"> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 


    <com.google.android.youtube.player.YouTubePlayerView 
     android:id="@+id/youtuber" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 


</RelativeLayout> 

</android.support.v7.widget.CardView> 

Répondre

1

vue YoutubePlayer est trop grand pour être ajouté à un recyclerview.So utiliser un YouTubeThumbnailView à la place pour afficher la vignette ls. Lorsque l'utilisateur clique sur l'un d'entre eux, vous pouvez démarrer un YouTubePlayerFragment ou une activité avec une vue YouTubeplayerView.

ci-dessous est le code de référence,

xml:

<com.google.android.youtube.player.YouTubeThumbnailView 
        android:id="@+id/youtube_view" 
        android:layout_width="match_parent" 
        android:layout_height="180dp" 
        android:layout_marginBottom="@dimen/ten_dp" 
        android:visibility="gone"/> 

en java:

// Initializing video player with developer key 
    youtube_view.initialize(Config.DEVELOPER_KEY, new YouTubeThumbnailView.OnInitializedListener() { 
     @Override 
     public void onInitializationSuccess(YouTubeThumbnailView youTubeThumbnailView, final YouTubeThumbnailLoader youTubeThumbnailLoader) { 
     youTubeThumbnailLoader.setVideo(videoId); 
     youTubeThumbnailLoader.setOnThumbnailLoadedListener(new YouTubeThumbnailLoader.OnThumbnailLoadedListener() { 
      @Override 
      public void onThumbnailLoaded(YouTubeThumbnailView youTubeThumbnailView, String s) { 
       youTubeThumbnailLoader.release(); 
       Toast.makeText(getActivity(), "It's a valid youtube url.", Toast.LENGTH_SHORT).show(); 
      } 
      @Override 
      public void onThumbnailError(YouTubeThumbnailView youTubeThumbnailView, YouTubeThumbnailLoader.ErrorReason errorReason) { 
       try { 
         Toast.makeText(getActivity(), "Not a valid youtube url.", Toast.LENGTH_SHORT).show(); 
        } catch (Exception ex) { 
          ex.printStackTrace(); 
        } 
       } 
       }); 
      } 
      @Override 
      public void onInitializationFailure(YouTubeThumbnailView youTubeThumbnailView, YouTubeInitializationResult youTubeInitializationResult) { 
      } 
     }); 
+0

'config' est montrant une erreur de ne peut pas résoudre le symbole, comment l'enlever –

+0

J'ai résolu la config mais elle n'apparaît toujours pas, aussi tout ce que je place dans la vue carte ne s'affiche pas –

+0

Config est une classe dans laquelle DEVELOPER_KEY est statique contre Tant que vous utilisez n'importe quelle autre classe à la place de Config –