背景: 我有一个活动,4个片段和一个视图页面(每个页面包含一个片段)。每个片段都包含一组短声音(每个声音最多5秒)。期望的行为是:如果用户在某个页面上单击了一个声音,并且该声音没有播放完毕,如果用户滑动到另一页,则媒体播放器将被释放,因此声音将停止播放。
问题: 当向左或向右滑动时,onPause或onStop方法不会被调用(因为viewPager根据定义加载当前页,前一页和下一页),因此播放来自最后一页的媒体播放器不会在滑动时停止。
研究:
我在多个帖子上进行了大量搜索,涉及到onPageChangeListener
,setOffScreenPageLimit
,将MediaPlayer设置为活动而不是片段(在我的情况下不可能,因为我有适配器中的声音列表)。这里是我研究但没有解决问题的一些链接:ViewPager swipe previous sound、Multiple video players in viewpager in android、Android MediaPlayer on ViewPager blocking UI transition and no callback for initial page loads、How to handle MediaPlayer object inside a fragment inside view pager、Using Viewpager with MediaPlayer
你有建议吗?: 如果您对如何解决此问题有任何建议,将不胜感激!谢谢!
implements ViewPager.OnPageChangeListener
,但方法没有被触发... - George Radu