Pregunta

Quiero reproducir sonido mientras el programa se ejecuta en C ++. Estoy usando el código:

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

Pensé que la bandera snd_async solucionaría este problema, pero no lo hizo. Lo que está sucediendo es que el programa se detendrá o el control no avanzará hasta que el sonido se haga. ¿Cómo puedo reproducir el sonido mientras el programa continúa funcionando? Para aclarar, el programa es un programa de consola de Windows que funciona en una ventana MS-DOS.

¿Fue útil?

Solución 2

Está bien. Lo que descubrí era que no se puede incluir el método PlaySound en la función porque aunque la bandera de Async estaba allí, el control tuvo que ejecutar completamente el método PlaySound antes de regresar, así que no lo ponga en la función a menos que haya más Código En la función (en cuyo caso se reproducirá el sonido mientras se ejecuta ese código) o en otras palabras, el control no volverá de la función hasta que PlaySound termine de ejecutarse y porque no hay otro código en la función para ejecutar, el control espera el control Hasta que termine el método PlaySound y luego continúe.

Otros consejos

¿Qué tal tocar el sonido en un hilo diferente?

En realidad tuve el mismo problema en mi aplicación iOS. Sabes el momento en que se lleva cuánto tiempo se lleva jugar tu archivo .wav. Puede crear un temporizador que llame a su método FighterPlanesound () cada período de tiempo final de su archivo. No es la mejor solución, pero funciona para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top