我正在使用View Pager显示图像和视频,我能够正确显示图像和视频,但是我遇到问题,当我滑动视频时,正在播放视频,但是我滑动了下一个或上一个,然后仍在播放视频只是下一个或上一个屏幕,但是当我在下一个或上一个屏幕上移动两个幻灯片时,视频正在停止,但为什么不在下一个或上一个幻灯片上显示。
我进行了更多搜索,但没有得到任何解决方案,任何帮助将不胜枚举。预先感谢。
这是我的适配器代码:
rbroggi@arch ~/workspace/project_one (master) $ pwd
/home/rbroggi/workspace/project_one
rbroggi@arch ~/workspace/project_one (master) $ cat .gitignore
ignoredfolder/
rbroggi@arch ~/workspace/project_one (master) $ cd ignoredfolder/
rbroggi@arch ~/workspace/project_one/ignoredfolder (master) $ git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
(master)
rbroggi@arch ~/workspace/project_one/ignoredfolder (master) $
}
答案 0 :(得分:0)
之所以发生这种情况,是因为ViewPager在当前项目之前和之后都保留了多个“处于活动状态”(处于“恢复”状态)的片段。默认值是每侧为1。确定该属性的是ViewPager.offScreenPageLimit
。这样做是为了方便您在滑动时方便地将下一个/上一个视图滑入。
您可以使用以下类似方法来确定页面何时更改。然后,您需要通知viewModel或服务您的每个分页片段都可以访问,以便他们可以确定是应该暂停还是继续播放媒体:
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener {
@Override
public void onPageSelected(int position) {
// find your player and pause it if it's not in the current view
// Ideally you notify a viewModel that is shared between your paged
// fragments here and let each one determine if it needs to pause
// its player.
}
@Override
public void onPageScrollStateChanged(int state) { // do nothing }
@Override
public void onPageScrolled(int position, float offset, int offsetInPixels) { // do nothing }
})