VideoViewではなく、MediaPlayerを使用してビデオを再生する必要があります。XmlレイアウトのSurfaceViewがあり、アクティビティ側にはMediaPlayerとMediaControllerがあります。
私は、SurfaceViewとMediaPlayerでMediaControllerを使用する方法を見つけることができませんでした。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());
}
}
そしてこのMediaPlayeronPreparedメソッド
@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を表示していません。
どうすればこれを達成できますか?
前もって感謝します。