我必须使用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。
我怎样才能做到这一点?
先谢了。
1条答案
按热度按时间slhcrj9b1#
你必须把它落实到行动中
检查以下工作代码