0

我在Viewpager中加载Youtube视频,但如果视图中有两个视频传呼机只有第二个视频能够播放。请帮助 如果只有最后一个视频可以播放,那么我想加载视图分页器中的所有视频。YoutubePlayer与ViewPager在PagerAdapter

YoutubeVideo装载器类: -

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; 
} 

}

回答

0

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

+0

MainActivity扩展YouTubeBaseActivity,YoutubePlayerControl用于控制播放选项Only。 – KnowAmit