Android - changing/replaying video in videoView

16,109

Solution 1

Try something like

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer arg0) {
         mVideoView.start();

    }
});


mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
            mp.reset();
            mVideoView.setVideoPath(file.getAbsolutePath());
            mVideoView.start();
    }
});

Solution 2

stop the playback, change video path, start video

videoView.stopPlayback();
videoView.setVideoPath(newVideoPath);
videoView.start();
Share:
16,109

Related videos on Youtube

Ajk
Author by

Ajk

Updated on September 14, 2022

Comments

  • Ajk
    Ajk over 1 year

    App I'm developing contains many short (1-2 sec) videos.

    The videos are displayed in one activity. User can either replay video (possibly while video is beeing played) or change actual video.

    Part of code changing video:

    String videoPath = getVideoPath();
    videoView.setVideoPath(videoPath);
    videoView.start();
    

    Those 3 lines already causes app to load new video and play it.

    Problem starts after video is completed. From this point loading new video causes many problems (Like sometimes for half a movie only sound is played while screen is black blank). There are similar problems with replaying video (which I end up with calling 3 lanes from above).

    It seems like android after completing movie releases resources or something like this (and that's why I am settings same path, when I want to replay video).

    Ideally I would want video to simply pause and seekTo to beggining of movie after finished playing (but I cannot do this in OnCompletedListener, since it already changed state to stopped...).

    Can I somehow achieve this? (By this I mean -> after completed video pauses and seekTo to beginning)

    I already tried all combinations of pausing vidoes, suspending them, setting OnPreparedListener, setting OnCompletedListener.

    Thx!

  • Ajk
    Ajk over 11 years
    I tried to run this code in loop. About once every 5 playback's there black screen with sound.A I'm considering starting new activity every playback, just to be sure it won't bug.
  • Wamasa
    Wamasa over 11 years
    Well, I ran this code with a 1:30min video, everything went just fine.