我必须使用 MediaPlayer 播放视频,而不是 VideoView。我在 Xml 布局中有一个 SurfaceView,在 Activity 端有一个 MediaPlayer 和一个 MediaController。
我找不到将 MediaController 与 SurfaceView 和 MediaPlayer 一起使用的方法。使用 VideoView 非常简单,但无法弄清楚如何使用 MediaPlayer。
我在网上找到了一些例子,但它们都是关于播放音频,而不是视频。
这是我创建 MediaPlayer 的 surfaceCreated 方法
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDisplay(mSurfaceHolder);
mMediaPlayer.setDataSource(this, Uri.parse(mUrl));
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.prepare();
mMediaController = new MediaController(this);
} catch (Exception e) {
Log.e(TAG, "MediaPlayer Prepare: " + e.getMessage());
}
}
和这个 MediaPlayer onPrepared 方法
@Override
public void onPrepared(MediaPlayer mp) {
mVideoWidth = mp.getVideoWidth();
mVideoHeight = mp.getVideoHeight();
mSurfaceHolder.setFixedSize(mVideoWidth, mVideoHeight);
startVideoPlayback();
mMediaController.setMediaPlayer(this);
handler.post(new Runnable() {
public void run() {
mMediaController.setEnabled(true);
mMediaController.show();
}
});
}
上面的代码没有在 SurfaceView 上显示 MediaController。
我怎样才能做到这一点?
提前致谢。