SDL Audio



  • Ich möchte mich in die Tonausgabe mit der SDL einarbeiten und frage mich (euch) in welche Richtung ich gehen soll:
    - SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/)
    - SDL_sound (http://icculus.org/SDL_sound/)

    Wo liegen die Unterschiede zwischen den beiden?
    Welches ist einfach zu handhaben?
    Gibt es sonstige nennenswerte Vor- oder Nachteile?
    Gibt es nennenswerte Alternativen zu den beiden?



  • Ich habe mich nun für SDL_mixer entschieden und kann schonmal soviel sagen: Der Einstieg fällt sehr leicht.



  • hatte mit SDL_mixer auch wenig probleme



  • Nun habe ich ein Problem, auch wenn es wohl mehr C++Allgemein als SDL_mixerSpezifisch ist. Ich möchte mir eine Klasse bauen, die sich komplett um den Audioteil meines Programms kümmert.
    Für die Musik gibt es dabei folgende 2 Funktionenen:

    void SoundOutput::PlayMusic(const char *pMusicFile, int pLoops)
    {
        if(mMusic != NULL) this->StopMusic();
        mMusic = Mix_LoadMUS(pMusicFile);
    	Mix_PlayMusic(mMusic, pLoops);
    	Mix_HookMusicFinished(StopMusic);
    }
    
    void SoundOutput::StopMusic()
    {
        Mix_HaltMusic();
        Mix_FreeMusic(mMusic);
        mMusic = NULL;
    }
    

    Die Zeile Mix_HookMusicFinished(StopMusic); sollte den Sinn haben, dass die Funktion void SoundOutput::StopMusic(); aufgerufen wird, wenn das Abspielen der Musik fertig ist. Die Funktion Mix_HookMusicFinished ist dabei wie folgt definiert:

    void Mix_HookMusicFinished(void (*music_finished)())
    

    Sie soll also einen Funktionszeiger bekommen und ich denke, ich kann ich nicht einfach eine Memberfunktion meiner Klasse übergeben. Aber wie kann ich das sonst hinbekommen?



  • → Hat sich erledigt. ←


Anmelden zum Antworten