在我的应用程序中,我有viewPager
并在此viewPager
我展示了视频,我将此视频设置为ViewPagerAdaper
。
我想要向右滑动左边,停止视频!
我在adapter
中为节目视频写下以下代码:
@Override
public Object instantiateItem(ViewGroup container, final int position) {
View view = this.inflater.inflate(R.layout.row_coming_soon, container, false);
ButterKnife.bind(this, view);
final ImageView comingSoonCover = (ImageView) view.findViewById(R.id.row_comingSoonCoverImg);
final ImageView comingSoonPlayBtn = (ImageView) view.findViewById(R.id.row_comingSoonPlayBtn);
final VideoView comingSoonVideoPlayer = (VideoView) view.findViewById(R.id.row_comingSoon_videoPlayer);
final RelativeLayout comingSoonImagesLay = (RelativeLayout) view.findViewById(R.id.row_comingSoonImagesLay);
comingSoonPlayBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
comingSoonVideoPlayer.setVideoURI(Uri.parse(model.get(position).getTrailerDirectLink()));
comingSoonVideoPlayer.start();
comingSoonImagesLay.setVisibility(View.GONE);
}
});
我想要在滑动viewPager
时,如果comingSoonVideoPlayer.isPlaying();
,停止并轻扫viewPager
。
我怎么能?
答案 0 :(得分:1)
我认为这个听众可以哄骗你
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
现在它被弃用了。必须使用addOnPageChangeListener / removeOnPageChangeListener
答案 1 :(得分:0)
您可以尝试在适配器中创建stop和star方法,例如
private void start(int position) {
if(comingSoonVideoPlayer != null {
comingSoonVideoPlayer.setVideoURI(Uri.parse(model.get(position).getTrailerDirectLink()));
comingSoonVideoPlayer.start();
}
}
private void stop() {
if(comingSoonVideoPlayer != null) {
comingSoonVideoPlayer.stop();
}
}
然后在你的片段中
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
mViewPager.getAdapter().stop();
mViewPager.getAdapter().start(position);
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
编辑:
将comingSoonVideoPlayer
作为类字段:
final VideoView comingSoonVideoPlayer;
@Override
public Object instantiateItem(ViewGroup container, final int position) {
View view = this.inflater.inflate(R.layout.row_coming_soon, container, false);
ButterKnife.bind(this, view);
final ImageView comingSoonCover = (ImageView) view.findViewById(R.id.row_comingSoonCoverImg);
final ImageView comingSoonPlayBtn = (ImageView) view.findViewById(R.id.row_comingSoonPlayBtn);
comingSoonVideoPlayer = (VideoView) view.findViewById(R.id.row_comingSoon_videoPlayer);
final RelativeLayout comingSoonImagesLay = (RelativeLayout) view.findViewById(R.id.row_comingSoonImagesLay);
comingSoonPlayBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
comingSoonVideoPlayer.setVideoURI(Uri.parse(model.get(position).getTrailerDirectLink()));
comingSoonVideoPlayer.start();
comingSoonImagesLay.setVisibility(View.GONE);
}
});
}
希望这有帮助。
抱歉我的英文。