Domanda

Voglio giocare il suono mentre il programma è in esecuzione in C ++. Sto usando il codice:

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

Ho pensato che la bandiera SND_ASYNC sarebbe risolvere questo problema, ma non lo feci. Quello che sta accadendo è il programma si interrompe o di controllo non si muoverà fino a quando il suono viene riprodotto fatto. Come posso riprodurre il suono mentre il programma continua a funzionare. Per chiarire, il programma è un programma di console di Windows che opera in una finestra MS-DOS.

È stato utile?

Soluzione 2

Ok. Quello che ho capito è che non è possibile includere il metodo PlaySound nella funzione perché, anche se la bandiera ASYNC era lì, il controllo ha avuto per eseguire completamente il metodo PlaySound prima di tornare, in modo da non mettere in funzione a meno che non ci sia più codice nella funzione (nel qual caso il suono viene riprodotto mentre tale codice viene eseguito) o in altre parole, il controllo non ritornerà dalla funzione fino PlaySound è terminato l'esecuzione e perché non v'è alcun altro codice nella funzione da eseguire, controllo attende fino metodo PlaySound è finito e quindi passa.

Altri suggerimenti

Come circa la riproduzione del suono in un thread diverso?

In realtà ho avuto lo stesso problema sul mio app iOS. Si conosce il tempo che quanto tempo ci vuole per riprodurre il file wav. È possibile creare un timer che chiama il metodo fighterplanesound () ogni periodo di tempo del file finale. Non è la soluzione migliore, ma funziona per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top