Meine Synchronisationsprobleme mit Android MediaPlayer

Ich habe einen einfachen Android Media Player, der mehrere Videos gleichzeitig auf einem einzigen Bildschirm abspielen kann. Im Grunde ist ein einzelner Media Player-Bildschirm in 4 Teile unterteilt, mit 4mediaPlayer Instanz zusammengeklebt, und jeder Teil spielt ein bestimmtes Video.

Es funktioniert fast in Ordnung, wenn meine Videodateien lokal auf dem Gerät gespeichert sind. Es gibt Synchronisationsprobleme, aber kleinere. Wenn ich jedoch eine URL für das HTTP-Streaming eingebe, treten erhebliche Synchronisierungsprobleme auf. Worin besteht das Problem? Wie kann ich die Synchronisierungsprobleme im Allgemeinen beheben?

Das einzige, was ich tun konnte, war zuerst die Mediaplayer zu instanziieren undprepare() ihnen, dann rufen Siestart() einer nach dem anderen, damit zumindest die Startzeiten nahe beieinander liegen. Es hat jedoch keine große Wirkung.

Hier habe ich eine Methode, die jedes der @ zurückgebmediaplayer Instanzen:

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

Und dann starte ich sie eins nach dem anderen:

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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage