Мой RecyclerView работает нормально, но когда я хочу загрузить в него несколько разных видео, некоторые из них работают, а другие нет. В чем проблема и как я могу это исправить? Похоже, ошибка «I / chromium: [INFO: CONSOLE (0)]». На странице https://www.youtube.com/ отображается небезопасное содержимое из android-webview: default_video_poster / -5662080095540307343. ", источник: https://www.youtube.com/ (0)"
Я использую https://github.com/PierfrancescoSoffritti/android-youtube-player#quick-start вместо API YouTube.
MainActivity:
private RecyclerView recyclerView;
private RecyclerView.Adapter adapter;
private RecyclerView.LayoutManager layoutManager;
List<String> videoItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoItems = new ArrayList<>();
videoItems.add("pNJLG6n4viY");
videoItems.add("9rcrYFO1ogc");
videoItems.add("K-4Tkp_2abs");
recyclerView = findViewById(R.id.RecyclerView);
adapter = new ItemAdapter(videoItems);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
}
и мой адаптер:
открытый класс ItemAdapter расширяет RecyclerView.Adapter {
private List<String> videoList;
public ItemAdapter(List<String> videoList) {
this.videoList = videoList;
}
public static class ItemViewHolder extends RecyclerView.ViewHolder {
private String URL = "url";
YouTubePlayerView youTubePlayerView;
public ItemViewHolder(@NonNull View itemView) {
super(itemView);
youTubePlayerView = itemView.findViewById(R.id.youtube_player_view);
youTubePlayerView.addYouTubePlayerListener(new AbstractYouTubePlayerListener() {
@Override
public void onReady(@NonNull YouTubePlayer youTubePlayer) {
String videoId = URL;
youTubePlayer.loadVideo(videoId, 0);
}
});
}
}
@NonNull
@Override
public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.player_item, parent, false);
ItemViewHolder itemViewHolder = new ItemViewHolder(view);
return itemViewHolder;
}
@Override
public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
holder.URL.replaceAll(".+", videoList.get(position));
}
@Override
public int getItemCount() {
return videoList.size();
}
}