Sono di fronte a un problema in cui il video di YouTube non viene visualizzato solo l'ultimo viene riprodotto e anche quando scorro il video scompare. Quello che volevo è che ogni video dovrebbe essere visualizzato e ogni video è diverso.Il video di Youtube non viene visualizzato in RecyclerView
public class MyRecyclerViewAdapter extends Adapter<MyRecyclerViewAdapter
.DataObjectHolder> {
private static String LOG_TAG = "MyRecyclerViewAdapter";
private ArrayList<DataObject> mDataset;
private static MyClickListener myClickListener;
private static final int RECOVERY_DIALOG_REQUEST = 10;
public static String key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
Context ctx;
View view;
public static class DataObjectHolder extends ViewHolder
implements View
.OnClickListener {
YouTubePlayerView youTubeView;
public DataObjectHolder(View itemView) {
super(itemView);
youTubeView = (YouTubePlayerView) itemView.findViewById(R.id.youtube_view);
Log.i(LOG_TAG, "Adding Listener");
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
myClickListener.onItemClick(getAdapterPosition(), v);
}
}
public void setOnItemClickListener(MyClickListener myClickListener) {
this.myClickListener = myClickListener;
}
public MyRecyclerViewAdapter(Context context,ArrayList<DataObject> myDataset) {
mDataset = myDataset;
ctx=context;
}
@Override
public DataObjectHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.playerview_demo, parent, false);
DataObjectHolder dataObjectHolder = new DataObjectHolder(view);
return dataObjectHolder;
}
@Override
public void onBindViewHolder(DataObjectHolder holder, final int position) {
holder.youTubeView.initialize(key, new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean b) {
player.cueVideo(mDataset.get(position).getmText1());
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) {
if (errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog((Activity) ctx, RECOVERY_DIALOG_REQUEST).show();
} else {
String errorMessage = String.format("YouTube Error (%1$s)",
errorReason.toString());
Toast.makeText(ctx, errorMessage, Toast.LENGTH_LONG).show();
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RECOVERY_DIALOG_REQUEST) {
// Retry initialization if user performed a recovery action
getYouTubePlayerProvider().initialize(key, this);
}
}
protected YouTubePlayer.Provider getYouTubePlayerProvider() {
Toast.makeText(ctx, view.toString(), Toast.LENGTH_LONG).show();
return (YouTubePlayerView) view.findViewById(R.id.youtube_view);
}
});
}
public void addItem(DataObject dataObj, int index) {
mDataset.add(index, dataObj);
notifyItemInserted(index);
}
public void deleteItem(int index) {
mDataset.remove(index);
notifyItemRemoved(index);
}
@Override
public int getItemCount() {
return mDataset.size();
}
public interface MyClickListener {
public void onItemClick(int position, View v);
}
}
per favore hai ottenuto la risoluzione? Sto anche affrontando lo stesso problema gentilmente aiutami. – user1629977
È il comportamento desiderato in cui il video viene riprodotto o che avvia un lettore separato ([esempio] (https://youtu.be/83tXbg8qfOs?t=25s))? Sareste in grado di pubblicare anche il file di layout per favore? – PPartisan
@Partartisan Sto cercando di visualizzare un elenco di video YouTube. quindi se l'utente farà clic su qualsiasi video. non aprirà la finestra di dialogo o altre attività. pianificherà in listview o recycler dove sono tag. – user1629977