【问题标题】:YoutubePlayer with ViewPager in PagerAdapterYoutubePlayer 与 PagerAdapter 中的 ViewPager
【发布时间】:2017-07-31 11:18:37
【问题描述】:

我正在 Viewpager 中加载 Youtube 视频,但如果视图寻呼机中有两个视频,则只能播放第二个视频。请帮忙 如果有多个视频,只有最后一个视频能够播放,我想在视图寻呼机中加载所有视频。

Youtube 视频加载器类:-

public class YoutubePlayerControl implements YouTubePlayer.OnInitializedListener {
private Context mContext;
private String youtubeVideoId;

public YoutubePlayerControl(Context mContext) {
    this.mContext = mContext;
}

public void playVideo(YouTubePlayerView youTubePlayerView, String videoId) {
    this.youtubeVideoId = videoId;
    youTubePlayerView.initialize(Config.KEY_YOUTUBE, this);
}

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
    if (!b) {
        youTubePlayer.cueVideo(youtubeVideoId);
    }
}

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

}

}

这里是适配器类:-

public class MyViewPagerAdapter extends PagerAdapter {

private Context mContext;
private List<FeedMetaData> feedMetaDatas;
private LayoutInflater layoutInflater;
private YoutubePlayerControl youtubePlayerControl;

public MyViewPagerAdapter(Context mContext, List<FeedMetaData> feedMetaDatas) {
    this.mContext = mContext;
    this.feedMetaDatas = feedMetaDatas;
    layoutInflater = LayoutInflater.from(this.mContext);
    youtubePlayerControl = new YoutubePlayerControl(this.mContext);
}

@Override
public int getCount() {
    return feedMetaDatas.size();
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return view.equals(object);
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    View itemView = layoutInflater.inflate(R.layout.nojoto_series_viewpager_row, container, false);

    YouTubePlayerView youtubePlayerView = (YouTubePlayerView) itemView.findViewById(R.id.youtube_view);

    FeedMetaData feedMetaData = feedMetaDatas.get(position);
    //playing Youtube Video 
   youtubePlayerControl.playVideo(playerFragment, feedMetaData.getVideoId());

    container.addView(itemView);
    return itemView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    container.removeView((View) object);
}

@Override
public void restoreState(Parcelable state, ClassLoader loader) {
}

@Override
public Parcelable saveState() {
    return null;
}

}

【问题讨论】:

    标签: android android-layout android-fragments android-viewpager android-youtube-api


    【解决方案1】:

    您的 YoutubePlayerControl 类必须扩展 YouTubeBaseActivity 类。否则会崩溃

    【讨论】:

    • MainActivity 扩展 YouTubeBaseActivity 和 YoutubePlayerControl 仅用于控制播放选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多