Tôi đang gặp vấn đề khi video youtube không hiển thị chỉ lần cuối cùng đang được phát và quá khi tôi cuộn video biến mất. Những gì tôi muốn là mỗi video sẽ được hiển thị và mỗi video là khác nhau.Youtube Video không hiển thị trong 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);
}
}
vui lòng giải quyết? Tôi cũng phải đối mặt với vấn đề tương tự vui lòng giúp tôi. – user1629977
Hành vi mong muốn mà video phát tại chỗ hay nó phát ra trình phát riêng biệt ([ví dụ] (https://youtu.be/83tXbg8qfOs?t=25s))? Bạn có thể đăng tập tin bố trí của bạn không? – PPartisan
@PPartisan Tôi đang cố hiển thị danh sách các video trên YouTube. vì vậy nếu người dùng nhấp vào bất kỳ video nào. nó sẽ không mở hộp thoại hoặc hoạt động khác. nó sẽ có kế hoạch trong listview hoặc recycler, nơi họ là tag. – user1629977