Witajcie,
mam mały problem z własną funkcją, którą napisałem z użyciem biblioteki SDL, a dokładniej to SDL_Mixer.
Kod:
void MainClass::Odgrywaj(char * str,Mix_Chunk *sound)
{
int audio_rate = 22050;
Uint16 audio_format = AUDIO_S16SYS;
int audio_channels = 2;
int audio_buffers = 4096;
if(Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers) != 0) {
std::cout<<"Error 14";
}
sound = Mix_LoadWAV(str);
if(sound == NULL) {
std::cout<<"Error 15";
}
int channel;
channel = Mix_PlayChannel(-1, sound, 0);
if(channel == -1) {
std::cout<<"Error 16";
}
}
Funkcja działa jak należy. Problem występuję wtedy, kiedy próbuję zatrzymać dźwięk:
MainClass::Odgrywaj("audio.wav",sound);
Mix_FreeChunk(sound);
Program wysypuję się( pojawia się błąd wygenerowany przez windowsa z 'wyślij raport') przy użyciu funkcji Mix_FreeChunk.