Frage

Ich möchte Sound spielen, während das Programm in C ++ ausgeführt wird. Ich benutze den Code:

 void fighterplanesound() 
{PlaySound(TEXT("bombdrop.wav"), NULL, SND_FILENAME|SND_ASYNC);}

Ich dachte, das Snd_async -Flag würde dieses Problem beheben, aber es tat es nicht. Was passiert, ist, dass das Programm innehalten wird oder die Kontrolle erst dann weitergeht, bis das Geräusch gespielt wird. Wie kann ich den Sound spielen, während das Programm weiterhin ausgeführt wird? Um zu verdeutlichen, handelt es sich bei dem Programm um ein Windows-Konsolenprogramm, das in einem MS-DOS-Fenster arbeitet.

War es hilfreich?

Lösung 2

OK. Was ich herausgefunden habe, war, dass Sie die PlaySound -Methode nicht in die Funktion einbeziehen können, denn obwohl das asynchronische Flag vorhanden war, musste die Kontrolle die PlaySound -Methode vor der Rückkehr vollständig ausführen. Setzen Sie sie also nicht in die Funktion ein, es sei denn, es gibt mehr Code in der Funktion (in diesem Fall wird der Sound gespielt, während dieser Code ausgeführt wird) oder mit anderen Worten, die Steuerung kehrt nicht aus der Funktion zurück, bis die Ausführung von PlaySound abgeschlossen ist. Da es keinen anderen Code in der Funktion gibt, wartet die Steuerung Waits Bis die PlaySound -Methode fertig ist und dann weitergeht.

Andere Tipps

Wie wäre es mit dem Sound in einem anderen Thread?

Eigentlich hatte ich das gleiche Problem in meiner iOS -App. Sie wissen, wie lange es dauert, wie lange es dauert, Ihre .wav -Datei zu spielen. Sie können einen Timer erstellen, der Ihre Kampfflugzeug -Methode in jeder Endzeit Ihrer Datei aufruft. Nicht die beste Lösung, aber es funktioniert für mich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top