0

我在android.support.v4.app.Fragment中使用MediaPlayer类。我想mediaPlayer.start()尽快片段是鉴于发生,所以我做了这个Android片段onVisible

public View onCreateView(LayoutInflater inflater, 
         ViewGroup container, Bundle savedInstanceState) { 
    mediaPlayer = new MediaPlayer(); 
    mediaPlayer.setDisplay(vidHolder); 
    mediaPlayer.setOnPreparedListener(this); 
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    mediaPlayer.setDataSource(videoAddress); 
    mediaPlayer.prepareAsync(); 

} 
public void onPrepared(MediaPlayer mediaPlayer) { 
    mediaPlayer.start(); 
} 

现在既然片段自动预载我有两个视频同时播放。 是否有像onCreateView这样的事件,只有当fragement可见时才被触发?

回答

0

您应该重写onStart()。

从Android碎片文档在onStart:

onStart() makes the fragment visible to the user (based on its containing activity being started). 
+0

似乎在onStart也触发之后onCreateView甚至在片段上视图。 – 2014-10-10 04:02:54

0

找到了自己

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    boolean m_iAmVisible = isVisibleToUser; 

    if (m_iAmVisible) { 
     Log.e("SHOW", videoAddress); 
    } else { 
     Log.e("HIDE", videoAddress); 
    } 
}