Verzögerung zwischen Looping-XNA-Songs beseitigen?

8

Ich mache ein Spiel mit XNA und versuche, Hintergrundmusik richtig zu schleifen. Da es sich bei der Datei um eine MP3-Datei mit einer Länge von ca. 30 Sekunden handelt, habe ich sie als instanziiert Song. Ich möchte, dass es perfekt geloopt wird, aber selbst wenn ich die MediaPlayer.IsRepeatingEigenschaft auf setze true, gibt es immer eine Verzögerung von ungefähr einer Sekunde, bevor der Song wieder startet. Gibt es eine Möglichkeit, diese Verzögerung so zu beseitigen, dass der Song sofort wiederholt wird, damit er flüssiger abgespielt werden kann?

Stephane Beniak
quelle

Antworten:

7

Der MediaPlayer in XNA hatte beim Looping von Songs immer eine kurze Verzögerung, und ich habe keine Möglichkeit gesehen, das Problem zu beheben. Was ist Ihre Zielplattform? Sie können XACT verwenden, wenn Sie auf die Xbox oder Windows abzielen, da diese nicht dieselben Probleme wie die MediaPlayer-API haben.

Ich würde empfehlen, SoundEffect (wie von Sprunth empfohlen) nicht zum Abspielen von Hintergrundmusik zu verwenden, wenn Sie es auf XBLIG oder dem WP7-Marktplatz veröffentlichen, da dies nicht gut mit dem integrierten Media Player zusammenpasst und zu Zertifizierungs- / Peer-Review-Problemen führt . Wenn Sie beispielsweise Ihre Hintergrundmusik als SoundEffect auf der Xbox abspielen und ein Player seinen eigenen Soundtrack verwenden möchte, wird Ihre Musik weiterhin übertrieben abgespielt. Wenn Sie jedoch einen Song wie empfohlen verwendet haben, wird er "magisch" gestoppt. Ähnliche schlimme Dinge passieren am Telefon.

Dadoo-Spiele
quelle
4
Vielen Dank für die Klarstellung, warum Songhier die richtige Wahl ist.
Stephane Beniak
+1 Für XACT. Sie sollten Ihre Musik und Soundeffekte als unkomprimierte WAV-Dateien importieren und XACT erlauben, sie zu komprimieren und in Wellenbänke zu packen.
michael.bartnett
4

Ich habe eine schnelle xna-App mit einer MP3-Datei von ~ 15 Sekunden erstellt und kann bestätigen, dass MediaPlayer dieses Problem beim Looping hat. Ich habe es erneut mit SoundEffect (und SoundEffectInstance für das Schleifen in XNA4) versucht und das Problem ist verschwunden. Sie könnten also zu SoundEffect wechseln?

Einige Recherchen / Quellen: Looping-Musik mit MediaPlayer-Problem Möglichkeiten zum Beheben der Verzögerungslücke beim Looping von MP3s in XNA 3.0

Sprunth
quelle