SDL 混音器声音无法播放

SDL Mixer Sound Not Playing

本文关键字:播放 声音 混音器 SDL      更新时间:2023-10-16

我正在使用 SDL 制作游戏,但我的声音处理程序类不起作用,我无法弄清楚原因。文件路径绝对正确,我SDL_Mixer正确设置,因为我以前有过正确的声音工作,我也没有收到任何错误或警告,游戏运行良好,只是没有音乐。

SoundHandler.h:

enum Sounds
{
    BACKGROUND_MUSIC, STICK_COLLECT
};
class SoundHandler
{
    public:
        SoundHandler();
        void PlaySound(Sounds sound);
    private:
        Mix_Music *backMusic;
        Mix_Music *stickCollect;
};

声音处理程序.cpp:

SoundHandler::SoundHandler()
{
    Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096);
    this->backMusic = Mix_LoadMUS("Data//Music//Background.mp3");
    this->stickCollect = Mix_LoadMUS("Data//Sounds//StickCollect.mp3");
    Mix_VolumeMusic(128);
}
void SoundHandler::PlaySound(Sounds sound)
{
    if(sound == BACKGROUND_MUSIC)
    {
        Mix_PlayMusic(this->backMusic, -1);
    }
    if(sound == STICK_COLLECT)
    {
        Mix_PlayMusic(this->stickCollect, 1);
    }
}

主.cpp相关线路:

// Initialise Sound
SoundHandler soundHandler;
// Play Background Music
soundHandler.PlaySound(BACKGROUND_MUSIC);
// Play Sound
soundHandler.PlaySound(STICK_COLLECT);

我认为问题出在文件路径中的双斜杠上,请尝试使用单斜杠。

您将有很长时间的调试时间而没有错误检查。