在Android中获取videoView的mediaPlayer

and*_*per 18 android android-mediaplayer android-videoview

是否有可能获得对videoView正在使用的mediaPlayer实例的引用,最好是在它的ctor内?如果是这样,怎么样?

由于videoView没有mediaPlayer那么多的监听器,我希望能够访问mediaPlayer以获得额外的控制和更好的事件处理.

min*_*haz 14

你可以从VideoView听众.

VideoView mVideoView=new VideoView();
mVideoView.setOnPreparedListener( new MediaPlayer.OnPreparedListener() {
  @Override
  public void onPrepared(MediaPlayer pMp) {
   //use a global variable to get the object
  }
});
Run Code Online (Sandbox Code Playgroud)

或者,如果您只对Media Player Events感兴趣,可以使用其中任何一个,这些都是在VideoView上实现的,这些基本上都是MediaPlayer事件.

void    setOnCompletionListener(MediaPlayer.OnCompletionListener l)
void    setOnErrorListener(MediaPlayer.OnErrorListener l)
void    setOnInfoListener(MediaPlayer.OnInfoListener l)
void    setOnPreparedListener(MediaPlayer.OnPreparedListener l)
Run Code Online (Sandbox Code Playgroud)

所有这些功能也将提供媒体播放器实例.

  • setOnPreparedListener()不起作用,从不调用onPrepared()! (2认同)