【问题标题】:SDL Mixer Sound Not PlayingSDL 混音器声音未播放
【发布时间】:2013-09-07 03:04:34
【问题描述】:

我正在使用 SDL 制作游戏,但我的 SoundHandler 类不起作用,我不知道为什么。文件路径绝对正确,并且我已经正确设置了 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;
};

SoundHandler.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);
    }
}

main.cpp 中的相关行:

// Initialise Sound
SoundHandler soundHandler;

// Play Background Music
soundHandler.PlaySound(BACKGROUND_MUSIC);

// Play Sound
soundHandler.PlaySound(STICK_COLLECT);

【问题讨论】:

  • 您是否在进行任何错误检查,或者这是您的完整代码?任何Mix_ 函数都可能静默失败。我首先要确保情况并非如此。

标签: c++ sdl


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-25
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2021-03-03
    相关资源
    最近更新 更多