2015-11-16 84 views
0

我有一个ViewPager与从FrameLayout延伸的项目,其中每个代表一个视频。代码初始化:MediaPlayer缓存不起作用

  try { 
       mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
       mPlayer.setDataSource(getContext(), Uri.parse(mVideo.getVideo().getPreviewMedium().getUrl())); 
       mPlayer.setOnPreparedListener(mOnPreparedListener); 
       mPlayer.prepareAsync(); 

      } catch (Exception e) { 
       LOG.toLog(e); 
      } 

而且在onPrepared

  mPlayer.start(); 

我所知,ViewPager试图初始化3项:现在,过去和未来,所以如果我这3间切换它工作正常,但如果我要进一步再reurning回 - 视频后mPlayer.setDataSource

问题再次加载:是否有机会第一次设置后,缓存它,那么mPlayer.setDataSource的未来呼叫将立即工作?

+0

在viewpager中使用arraylist来缓存状态。 –

+0

@tinysunlight,什么状态?以及它会如何帮助,我需要一些关于你的建议的信息,请 –

+0

也许你可以在viewpager上设置一个大的偏移限制。 –

回答

0

viewpager。 setoffsetlimit()到您的项目大小。

使用准备检查是否准备好。如果准备好了,则不需要setData。

+0

作为@Nik提到他的问题不是关于大小viewpager时,他在页面之间滑动片段视图被销毁,所以mediaPlayer从头开始。我认为增加viewpager的大小并不能帮助他 – Amir