Moin,
ich schreibe ein kleines Spiel mit FMX, aber nur für Windows und frage mich wie man heutzutage Sound abspielt. Konkret geht es mir um zwei Sachen:
1) Hintergrundmusik. Dazu zähle ich z.B. auch den Countdown beim Start oder das Jubeln am Ende. Die Musik wird durchgehend im Hintergrund gespielt und wiederholt sich. Ab und zu ändert sie sich.
2) Effekte wie z.B. eine Autohupe, ein Zusammenstoß, das Auslösen eines Boosters etc.
Ich habe jetzt den FMX.Media.TMediaPlayer und
Winapi.MMSystem.PlaySound() ausprobiert. Der MediaPlayer hat eine enorme Verzögerung bis der Sound abgespielt wird und der Ton "hakelt", das läuft wahrscheinlich im MainThread. Die Hintergrundmusik konnte ich recht gut mit PlaySound() umsetzen, allerdings bekomme ich Probleme wenn ich jetzt Effekte abspielen möchte. Anscheinend kann ich da nur eine Wiedergabe pro Prozess haben, sodass die Hupe dann die Hintergrundmusik stoppt.
Darum die Frage, was würdet ihr empfehlen? Das Projekt ist recht klein, aber kommerziell. Komponenten dürfen was kosten, die Lizenz für die Bass.dll ist mir aber z.B. zu teuer. Mein Anspruch ist nur dass ich den Sound verzögerungsarm abspielen kann und eben Hintergrundmusik und Effekte gleichzeitig. Kein 3D-Klang, keine Filter oder sonstigen Veränderungen vom Ton. Lautstärkeregelung für Hintergrundmusik & Effekte wäre toll, aber kein muss.
Vielleicht hat hier ja jemand Erfahrung
Ich danke euch!
Dominik