Ich habe ein "Format" erstellt, um Segmente von Musik (Auftaktteil, wiederholten Teil, Endteil) und Zeitinformationen für diese Segmente (Offset, gekerbt Länge) zu speichern, damit ich es mischen kann in Echtzeit, als wäre es ein Musikstück, während der wiederholte Teil (optional) auf unbestimmte Zeit wiederholt wird. Auf diese Weise können die Segmente Decay speichern, wo das nächste Segment gespielt wird, während das vorherige beendet ist. (Ich habe einen Player dafür in Java erstellt und die Clip-Klasse verwendet.)XNA Music Mischen Echtzeit
Ich wollte dieses Format, also kann ich eine endliche Musiklänge (für eine Jukebox-Funktion) bereitstellen, während ich Musik unendlicher Länge in spiele -Games.
Wenn ich jedoch eine Klasse in XNA programmieren wollte, die dieses "Format" verwaltet, ist mir aufgefallen, dass es keine offensichtliche Möglichkeit gibt, "Songs" gleichzeitig/überlappend zu spielen. Wie kann ich das tun/was ist die beste Vorgehensweise, das XNA-Framework nicht zu verlassen? (Ich möchte keine unendlichen Playlists erstellen.)
Das ist traurig, weil ich geplant hatte, mein Projekt in C++ zu portieren, und so versuchte ich, so wenig verschiedene Version der Ressource zu erstellen, wie möglich. Aber wenn es wirklich stirbt, bedeutet das, dass sie in Zukunft XNA dafür entwickeln müssen, erweiterte Logik dafür hinzuzufügen. Ich werde dann zu XACT schauen. Vielen Dank! –
Nicht unbedingt. Sie könnten XACT einfach so lassen, wie es ist, und es niemals einfach aktualisieren, aber niemals erweiterte Audiodaten zu XNA hinzufügen. Im Moment ist es ziemlich gut. Wenn Sie bei der Portierung auf C++ mit DirectX arbeiten, sollten Sie sich die Version von XACT für Vanilla DirectX ansehen. Ich verstehe, dass es eine gewisse Übertragbarkeit zwischen XNA XACT und DirectX XACT gibt, daher ist es am Ende vielleicht nicht so schwierig, Ihre Audio-Integration zu bewegen. –
Ich bin ein Cross-Plattform-Freak, und ich möchte es auf System portieren, wo DirectX nicht verfügbar ist, so dass das keine Option für mich ist, aber danke nochmal. :) –