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;
}