Meus problemas de sincronização do Android MediaPlayer

Eu tenho um simples media player Android que pode reproduzir vários vídeos simultaneamente em uma única tela. Então, basicamente, uma única tela do media player é dividida em 4 partes, com 4mediaPlayer instância colada e cada parte reproduz um determinado vídeo.

Funciona quase bem quando meus arquivos de vídeo são armazenados localmente no dispositivo. Existem problemas de sincronização, mas pequenos. Mas quando eu insiro uma URL para streaming HTTP, há problemas significativos de sincronização. Qual é o problema? Geralmente, como posso remover os problemas de sincronização?

A única coisa que pude fazer foi instanciar os mediaplayers eprepare() eles, então chamestart() um após o outro, para que pelo menos os horários de início se aproximem. Mas não tem muito efeito.

Aqui eu tenho um método que retorna cada um dosmediaplayer instâncias:

MediaPlayer mediaPreparation(String filename, boolean setMute) {
    String url = "myURL"; // your URL here
    // create mediaplayer instance
    MediaPlayer mediaPlayer = new MediaPlayer();
    if (setMute) {
        mediaPlayer.setVolume(0, 0);
    }
    try {

        mediaPlayer.setDataSource(url);
        mediaPlayer.prepare();

    } catch (IOException e) {
    }

    mediaPlayer.setLooping(true);
    // mediaPlayer.start();
    return mediaPlayer;
}

E então eu começo um por um:

mp[0].start();
mp[1].start();
mp[2].start();
mp[3].start();

questionAnswers(2)

yourAnswerToTheQuestion