Programación General > C/C++

 SDL mixer

(1/1)

Cebollo:
Buenas, estoy teniendo problemas a la hora de usar esta librería para incorparar varios sonidos simultáneos a un juego.

El problema que tengo es que solo se escucha un sonido simultáneo, únicamente el que está en el canal 0.
He comprobando si los demás canales suenan con esta función Mix_Playing(canal) y me dicen que sí.
¿Qué puede esar pasando? ¿Puede ser cosa de mi tarjeta de sonido?

El código es el siguiente:

SDL_Init(SDL_INIT_AUDIO);
Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 4096);
Mix_AllocateChannels(10);
Mix_Chunk *sonido, *sonido2;
sonido = Mix_LoadWAV("Audio/Explosion.wav");
sonido2 = Mix_LoadWAV("Audio/Disparo.wav");
Mix_PlayChannel(0, sonido, 0);
Mix_PlayChannel(1, sonido2, 0);

Geo:
Acabo de probar un código basado en el tuyo y no he tenido problemas reproduciendo el audio, prueba revisando los valores devueltos por cada función. También, revisar que el problema no sea tu sistema, ¿en qué estás trabajando?


--- Código: C++ ---#include <SDL.h>#include <SDL_mixer.h> int main() {    if ( SDL_Init( SDL_INIT_AUDIO ) < 0 ) {        fprintf( stderr, "%sn", SDL_GetError() );        exit( 1 );    }      if ( Mix_OpenAudio( MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 4096 ) < 0 ) {        fprintf( stderr, "%sn", SDL_GetError() );        exit( 1 );          }     Mix_AllocateChannels( 10 );    Mix_Chunk* sonido1;    Mix_Chunk* sonido2;    Mix_Chunk* sonido3;     sonido1 = Mix_LoadWAV( "borrego1.wav" );    sonido2 = Mix_LoadWAV( "gallo1.wav" );    sonido3 = Mix_LoadWAV( "vaca1.wav" );     Mix_PlayChannel( 0, sonido1, 0 );    Mix_PlayChannel( 1, sonido2, 0 );    Mix_PlayChannel( 2, sonido3, 0 );     SDL_Delay( 3000 );    Mix_FreeChunk( sonido3 );    Mix_FreeChunk( sonido2 );    Mix_FreeChunk( sonido1 );    Mix_CloseAudio();    SDL_Quit();     return 0;}  

Navegación

[0] Índice de Mensajes

Ir a la versión completa