• Jueves 16 de Mayo de 2024, 21:16

Autor Tema:  SDL mixer  (Leído 1164 veces)

Cebollo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
SDL mixer
« en: Martes 14 de Julio de 2009, 00:23 »
0
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

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: SDL mixer
« Respuesta #1 en: Domingo 19 de Julio de 2009, 08:20 »
0
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++
  1. #include <SDL.h>
  2. #include <SDL_mixer.h>
  3.  
  4. int main() {
  5.     if ( SDL_Init( SDL_INIT_AUDIO ) < 0 ) {
  6.         fprintf( stderr, "%sn", SDL_GetError() );
  7.         exit( 1 );
  8.     }
  9.  
  10.  
  11.     if ( Mix_OpenAudio( MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 4096 ) < 0 ) {
  12.         fprintf( stderr, "%sn", SDL_GetError() );
  13.         exit( 1 );     
  14.     }
  15.  
  16.     Mix_AllocateChannels( 10 );
  17.     Mix_Chunk* sonido1;
  18.     Mix_Chunk* sonido2;
  19.     Mix_Chunk* sonido3;
  20.  
  21.     sonido1 = Mix_LoadWAV( "borrego1.wav" );
  22.     sonido2 = Mix_LoadWAV( "gallo1.wav" );
  23.     sonido3 = Mix_LoadWAV( "vaca1.wav" );
  24.  
  25.     Mix_PlayChannel( 0, sonido1, 0 );
  26.     Mix_PlayChannel( 1, sonido2, 0 );
  27.     Mix_PlayChannel( 2, sonido3, 0 );
  28.  
  29.     SDL_Delay( 3000 );
  30.     Mix_FreeChunk( sonido3 );
  31.     Mix_FreeChunk( sonido2 );
  32.     Mix_FreeChunk( sonido1 );
  33.     Mix_CloseAudio();
  34.     SDL_Quit();
  35.  
  36.     return 0;
  37. }
  38.  
  39.  
La imaginación es el límite.
Hardware & Software | Mexchip