2010-06-02 51 views
3

我正在使用MediaPlayer在我的应用程序中播放视频。视频需要一段时间才能缓冲,并且视频视图在那段时间内为空。Android - MediaPlayer中的缓冲区

当用户进入前一屏幕时,有没有办法开始缓冲,这样当他来到视频播放屏幕时,视频就可以播放了?

感谢 克里斯

回答

0

我还没有尝试过,但您可以尝试在用户位于上一屏幕时调用MediaPlayer.prepareAsync(),然后在用户移至右侧屏幕时调用.start()。不知道媒体播放器在此过程中可以存活在哪里......您可能需要在用户想要查看视频时动态更新的一项活动中完成所有操作。

0

象下面这样:

mp.setOnInfoListener(new OnInfoListener() { 
@Override 
public boolean onInfo(MediaPlayer mp, int what, int extra) { 
    if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START) { 
     loadingDialog.setVisibility(View.VISIBLE); 
    } else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) { 
     loadingDialog.setVisibility(View.GONE); 
    } 
    return false; 
} 

});

+0

这似乎并没有解决主要问题 - 从先前的屏幕开始缓冲,** **之前视频查看已创建。 – 2013-04-11 04:42:06

0
mediaPlayer.setOnInfoListener(new OnInfoListener() { 
    @Override 
    public boolean onInfo(MediaPlayer mp, int what, int extra) { 
     if (what == 703) { 
      // Not documented :(
      // See http://stackoverflow.com/a/9622717/435605 
      isBuffering = true; 
     } else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) { 
      isBuffering = false; 
     } 
     return false; 
    } 
});