我需要使用MediaPlayer来播放视频,而不是VideoView。在Xml布局中有一个SurfaceView,在Activity中有一个MediaPlayer和一个MediaController。
我找不到一种方法来将MediaController与SurfaceView和MediaPlayer一起使用。使用VideoView非常简单,但无法弄清楚如何与MediaPlayer一起使用。
我在网上找到了一些示例,但它们都是关于播放音频而不是视频的。
这是surfaceCreated方法,我在其中创建MediaPlayer。
@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。
我该如何实现呢?
提前感谢。