3

I have an Android app with two media players close to eachother, playing videos. The loop is enabled. When it is running, I notice one of the videos get a bit off from the other for a few hundred ms which is noticeable. The two videos are crops of the same video that's why when the guy moves, it gets clear there is an edge. I was trying to manually add a few milliseconds to the other one using

mp[1].seekTo(mp[0].getCurrentPosition()+700)

but unfortunately it gets off as time passes. And everytime it gets different. I was using Thread and set the mediaPlayer.start() of the two players at the same time (as this post suggested), but that also didn't help. How can I solve the problem? Any thoughts?

mp[0] = mediaPreparation("waldo_short_1.mp4", false);
mp[1] = mediaPreparation("waldo_short_2.mp4", false);

mp[0].start();
mp[1].start();
mp[1].seekTo(mp[0].getCurrentPosition()+705);

    MediaPlayer mediaPreparation(String filename, boolean setMute) {

        // create mediaplayer instance
        MediaPlayer mediaPlayer = new MediaPlayer();
        AssetFileDescriptor afd;
        try {
            afd = getContext().getAssets().openFd(filename);
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            afd.close();
            mediaPlayer.prepare();
        } catch (IOException e) {

        }

        mediaPlayer.setLooping(true);
        // mediaPlayer.start();
        return mediaPlayer;
    }
Community
  • 1
  • 1
Tina J
  • 4,983
  • 13
  • 59
  • 125

0 Answers0