それを設定すると、わずかなちらつきefeectを与えます。より良いアプローチはVideoView
のメソッドを使用する代わりにMediaPlayer
クラスのpause()
とstart()
メソッドを使用することです。 start()
メソッドがVideoView
の場合は、最初からビデオが再開されますが、MediaPlayer
のメソッドstart()
は、以前にpause()
メソッドが呼び出された場合にビデオを再開します。ここで
は公式Androidのドキュメントが
はAPIレベル1開始で追加または再生を再開します)(
ます。public void startを言うことです。 の再生が以前に一時停止されていた場合は、再生が一時的に中止されたところから再生されます。 再生が停止した場合、または以前に再生が開始されていない場合は、最初に の再生が開始されます。
あなたはMediaPlayer
がVideoView
のOnPreparedListener
にVideoView
に関連付けられ得ることができます。
public class MainActivity extends Activity {
private MediaPlayer mMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VideoView videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setVideoPath(path);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mMediaPlayer = mp;
}
});
}
}
後続pause()
とresume()
方法はMediaPlayer
オブジェクト自体で呼び出すことができます。
//To pause the video
mMediaPlayer.pause();
//To resume the video
mMediaPlayer.start();
非常に簡単で効率的なソリューションです。それが役に立てば幸い!
onSaveInstanceState(Bundle outState)の間にoutStateに 'stopPosition'を格納できます。これは、onCreate(Bundle savedInstanceState)を使用してアクティビティで取り込むことができます。 – Entreco