C/Visual C - Sonido por altavoces en C

 
Vista:

Sonido por altavoces en C

Publicado por Víctor (1 intervención) el 06/08/2003 03:07:43
Hola. Necesito saber cómo puedo hacer para reproducir sonido mediante la tarjeta d sonido y que suene por los altavoces para un programa en C. Se trata de reproducir en pantalla el mástil d una guitarra sobre el cual t puedes mover por los trastes y cuerdas mediante las teclas del cursor, y al pulsar enter se reproduce el sonido. Sé como hacerlo mediante el speaker, ya q conozco la función sound de C, pero no sé como hacerlo para que suene por los altavoces. Muchas gracias por tu ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cómo reproducir sonido en los altavoces desde un programa en C

Publicado por Alejandro (1286 intervenciones) el 23/07/2025 18:39:31
Víctor, para reproducir sonido en los altavoces en un programa en C, la función `sound()` que mencionas generalmente solo emite un pitido en el speaker interno del PC, y no en los altavoces externos. Para reproducir sonidos en los altavoces, necesitas usar una API o librería que permita manejar audio de forma más avanzada.

Aquí te comparto algunas opciones comunes:

1. Usar la API de Windows (Waveform Audio)


En Windows, puedes usar la API de Windows para reproducir archivos WAV, por ejemplo, con la función `PlaySound()` de la librería `windows.h`. Es muy sencilla y efectiva para sonidos cortos.

Ejemplo básico:

1
2
3
4
5
6
7
8
9
10
11
12
#include <windows.h>
#include <mmsystem.h>
 
#pragma comment(lib, "winmm.lib")
 
int main() {
    // Reproduce un archivo WAV
    PlaySound(TEXT("sonido.wav"), NULL, SND_FILENAME | SND_ASYNC);
    // Espera a que termine la reproducción
    Sleep(3000);
    return 0;
}

Notas:
- Debes tener un archivo `sonido.wav` en el directorio del programa.
- La opción `SND_ASYNC` permite que la reproducción sea asíncrona, para no bloquear el programa.

2. Usar librerías externas


Si quieres más control, puedes usar librerías como **SDL2**, **OpenAL**, o **PortAudio**. Estas librerías permiten cargar y reproducir archivos de audio en diferentes formatos y con mayor control.

Por ejemplo, con SDL2:

- Cargar un archivo WAV
- Reproducirlo en los altavoces

Pero requiere instalar y configurar la librería.

3. Reproducir sonidos en modo simple (Windows)


Para sonidos cortos, la función `Beep()` también puede ser útil, aunque solo genera tonos simples, no archivos de sonido complejos.

---

Resumen


- Para sonidos cortos en Windows, usa `PlaySound()`.
- Para sonidos más complejos o en otros sistemas, considera librerías como SDL2 o PortAudio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar