i write a SDL demo code, and compile it.
i run it on e680, it just create sound like popo, not the sound i want
what's wrong with this code?


i make it with following cmds

arm-linux-gcc -o barr main.c -I../include/qt -I../include/ezx -I../include/SDL -L../lib -L../lib/ezx/lib -lSDL-1.2 -lSDL_mixer-1.2 -lezxappbase-xscale-r -lqte-mt-xscale-r -lezxjpeg-xscale-r -lezxnotification-xscale-r

the code is

#ifdef HAVE_CONFIG_H
#include "../config.h"
#endif

#include "defs.h"
#include "shots.h"
#include "units.h"
#include "data.h"
#include "chart.h"
#include "bfield.h"
#include "menu.h"

SDL_Surface *screen;
#define BITDEPTH 16

int delay = 0;
int fullscreen = 1;
int audio_on = 1;
int audio_freq = 22050;
int audio_format = AUDIO_S16LSB;
int audio_channels = 2;
int audio_mix_channel_count = 0;

int main( int argc, char **argv )
{

if ( SDL_Init( SDL_INIT_AUDIO ) < 0 ) {
printf( "%s\n", SDL_GetError() );
exit(1);
}

if ( Mix_OpenAudio( audio_freq, audio_format, audio_channels, 1024 ) < 0 ) {
printf( "%s\n", SDL_GetError() );
exit(1);
}
audio_mix_channel_count = Mix_AllocateChannels( 16 );
wav_expl3 = Mix_LoadWAV( "expl3.wav" ); /* convets already */
if ( wav_expl3 == 0 ) {
printf( "%s\n", SDL_GetError() );
exit(1);
}


Mix_PlayChannelTimed(-1,wav_expl3,0,-1);

Mix_CloseAudio();

return (0);
}