Spielen mehrere Lieder mit dem MediaPlayer auf die gleiche Zeit: nur eins ist wirklich zu spielen

Ich brauche Hilfe mit dem Abspielen von mehreren audio-tracks gleichzeitig in Android.

Ich soll spielen drei audio-tracks an der exakt gleichen Zeit mit Android.Media.MediaPlayer.

Gestern habe ich es geschafft, damit es funktioniert dabei so :

MediaPlayer track1 = MediaPlayer.create(this, R.raw.track1);
MediaPlayer track2 = MediaPlayer.create(this, R.raw.track2);
MediaPlayer track3 = MediaPlayer.create(this, R.raw.track3);

Wie Sie sehen können, habe ich drei distincts Instanzen von MediaPlayer hier.

Weil ich bin gefragt, ich muss diese MediaPlayer gespielt wird in einer hintergrund-thread.

Hier ist der Teil, wo ich beginnen die MediaPlayers:

//let's suppose this code snippet is in a run() method inside a Thread (which is the case)
track1.start();
track2.start();
track3.start();

Wenn ich sage gestern, es ist, weil der nächste Tag, es hat nicht funktioniert wie soll.

In der Tat, ab einem MediaPlayer zu stoppen scheint alle vorherigen spielen MediaPlayer.

Getestet habe ich im debugger-Modus : klar, track2.start() hält track1 ' s MediaPlayer und nach dem gleichen Muster, track3.start() hält tack2 der MediaPlayer.

So am Ende, nur track3 gespielt wird, ich kann nicht hören, einen der vorangegangenen tracks, was auch immer die Lautstärke in der Erwägung, dass konnte ich eindeutig hören, alle von Ihnen, bevor Sie : es soll eine Art " Ambiente.

Natürlich verändert sich die Reihenfolge, in der die tracks gestartet werden, ändert daran nichts : nur den letzten track zu hören sein wird.

Wenn ich sage, "gehört" es ist so, weil im debugger-Modus, überprüfen Sie die Eigenschaft MediaPlayer.isPlaying wieder true : alle drei Spieler sagen, Sie spielen aber nur eine hören kann... !

Warum die änderung ?
Warum hat es die Arbeit einmal zu stoppen, danach arbeiten ?

HINWEIS:

  • die audio-Dateien haben alle die gleiche Dauer, die ist rund 15 Minuten
  • die audio-Dateien wurden .mp3 Dateien komprimiert in .acc Dateien (aus 320kbps zu 144kbps)
  • Ich arbeite unter Xamarin Studio im C# aber für clarety purpouse stecke ich kleine Java code-Schnipsel.

BEARBEITEN 1

Gemäß dieser Spielen zwei mp3 Songs, gleichzeitig meine Lösung sollte funktionieren, richtig ?

InformationsquelleAutor Mackovich | 2014-10-15
Schreibe einen Kommentar