2015-11-16 112 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